설치, 로그인 가능하도록 초기비밀번호 생성, 포트 변경, character set utf8 설정까지 완료했습니다.

(아래 링크 참조)

https://growingsaja.tistory.com/253

 

외부에서 해당 서버 DB로 접속하기 위한 세팅을 포함해 유저 관련 설정에 대해 알아보겠습니다.

 

 [ 작업환경 ]

Centos7.3

 

 

 

1. DB users 설정 개요 조회

> SELECT host, user, password FROM mysql.user;

 

 

2. mysql root 비밀번호 변경

$ SET PASSWORD = PASSWORD('sample123');

 

 

3. Local에서 접속 가능한 사용자 추가하기 ( Create User Example )

비밀번호와 함께 사용자 생성

  $ CREATE USER '사용자'@'localhost' IDENTIFIED BY '비밀번호';

    ㄴ단순히 'testuser'라는 유저만 생성 (비밀번호 미설정)

        $ CREATE USER 'testuser'@localhost;

    ㄴ생성된 계정의 'testuserpassword' 라는 비밀번호 설정

        $ SET PASSWORD FOR 'testuser'@localhost = PASSWORD('testuserpassword');

        > 만약 외부의 모든 IP 접속을 허용하는 계정 생성한다면 'localhost' 대신 '%' 사용

          $ CREATE USER '사용자'@'%' IDENTIFIED BY '비밀번호';

 

 

4. DB 권한 부여 ( 'db이름'이라는 DB에 대한 모든 권한을 주는 Example )

$ GRANT ALL PRIVILEGES ON *.* to '사용자'@'localhost';            # 모든 DB 접속 권한 주기

$ GRANT ALL PRIVILEGES ON db이름.* to '사용자'@'localhost';    # db이름 이라는 DB에만 접속 권한 주기

++ $ GRANT ALL PRIVILEGES ON testDB.* TO testuser@localhost IDENTIFIED BY 'testuserpassword';

$ FLUSH PRIVILEGES;        # 권한 설정 적용을 위해서 마지막에 꼭 입력해줘야함

$ GRANT SELECT ON testDB.* TO 'testuser'@'localhost' IDENTIFIED BY 'testuserpassword';    # select 권한만 주기1

$ GRANT SELECT ON *.* TO 'plans'@'%' IDENTIFIED BY 'testuserpassword';    # select 권한만 주기2

$ SHOW GRANTS FOR 'testuser'@'999.888.777.666';          # 999.888.777.666에 대한 testuser 계정 권한 정보 조회

( TIP : localhost와 본인의 IP를 직접 사용하는 것은 동일하지 않음! 둘이 서로 다름을 인식하고 권한을 줘야함! )

 

$ SELECT user, host, password FROM mysql.user;                # DB 접속 유저 정보 보기

 

 

5. User 계정 삭제 ( Example )

$ DROP USER '사용자'@'localhost';

 

 

6. DB 생성 ('testDB'라는 데이터베이스 생성)

$ CREATE DATABASE testDB;

 

 

7. Table 생성 ( Example )

CREATE TABLE IF NOT EXISTS store_information (

idx int UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT '고유값',

callnum VARCHAR(13) COMMENT '전화번호',

name VARCHAR(20) COMMENT '가게 이름',

road_name_address_kor VARCHAR(30) COMMENT '도로명주소',

location_old_kor VARCHAR(35) COMMENT '지번',

postcode VARCHAR(6) COMMENT '우편번호',

coordinate point COMMENT '좌표',

opening_hours VARCHAR(45) COMMENT '영업시간',

regdate TIMESTAMP DEFAULT NOW() COMMENT '등록일시',

remark1 VARCHAR(50) COMMENT '비고1',

remark2 VARCHAR(50) COMMENT '비고2'

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

COMMENT '가게 정보';

 

 

8. DB 내에서 데이터 이동 ( Example )

> INSERT INTO my_suppliers.rawdatas_ver100 SELECT * FROM my_suppliers.rawdatas_ver000 WHERE date BETWEEN '2019.08.01' AND '2019.11.23';

> INSERT INTO test_ver100 (call_num, name) VALUES ('010-9999-9999', 'Jane');

 

 

 

+ Recent posts