설치, 로그인 가능하도록 초기비밀번호 생성, 포트 변경, 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');
'About Data > DB' 카테고리의 다른 글
[Python3][Flask1.1] Flask로 blog 웹개발 실습 - 12 : Follower, Followed, following, unfollowing 기능 추가 (0) | 2019.12.12 |
---|---|
[Mysql] data insert된 일시가 default인 Datatime 컬럼 생성 (0) | 2019.11.26 |
[Centos7][MariaDB] MariaDB 실습 - 3 : Change Character Set (0) | 2019.11.22 |
[Centos7][MariaDB] MariaDB 실습 - 2 : Change Port (0) | 2019.11.22 |
[Centos7][MariaDB] MariaDB 실습 - 1 : install & Login (0) | 2019.11.22 |