2018.11.23 19:07

MySQL8.x 데이터베이스 생성

○ 사용자 추가하기

mysql> create user '사용자 아이디'@'%' identified by '비밀번호';

Query OK, 0 rows affected (0.10 sec)


위의 예문은 사용자가 외부접근 가능하도록 한 옵션이다.

비밀번호에는 대문자+숫자+특수문자가 포함되어야 한다.


mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)


변경 된 내용은 mysql에 반영한다.




○ 사용자 확인

mysql> select host, user, authentication_string from user;

+-----------+------------------+------------------------------------------------------------------------+

| host      | user             | authentication_string                                                  |

+-----------+------------------+------------------------------------------------------------------------+

| %         | 새 아이디           | $A$005$ER6!

`17E&}DSM5yk59f27R9jq00ElBgP/lBRFRXsugiZ2i1LXVljO9/JB |

| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |

| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |

| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |

| localhost | root             | $A$005$Sk@\zR

Y1GAWFMJcFp3O4P7OskPw/N.3 |

+-----------+------------------+------------------------------------------------------------------------+

5 rows in set (0.00 sec)


새 아이디가 추가 된 것을 확인 할 수 있다.



○ 한글이 지원되도록하는 데이터베이스 생성하기

mysql> CREATE DATABASE 데이터베이스 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Query OK, 1 row affected, 2 warnings (0.05 sec) 


○ 생성 된 데이터베이스에 사용자의 접근 권한 부여하기

mysql> grant all on 데이터베이스.* to 사용자ID;

Query OK, 0 rows affected (0.03 sec)

기재한 데이터베이스의 모든 테이블에 접근 가능한 권한을 사용자ID에 부여한다.


mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)



○ 사용자 삭제

mysql> drop user '아이디'@'%';

또는

mysql > drop user '아이디'@'localhost';



[mysqld]
# The default authentication plugin to be used when connecting to the server
default_authentication_plugin=caching_sha2_password
#default_authentication_plugin=mysql_native_password

사용자를 등록할 때 비밀번호를 설정하는데 caching_sha2_password는 대소문자특수문자숫자가 포함 된 복잡한 새 암호화 방식이고 mysql_native_password는 예전의 해싱 방식이다.


Authentication plugin 'caching_sha2_password' cannot be loaded

만약 이런 에러를 만났다면 mysql에 들어가서

mysql> ALTER USER 'username' IDENTIFIED WITH mysql_native_password BY 'password';


이렇게 하면 caching_sha2_password 방식으로 만들었떤 비밀번호가 mysql_native_paswword 방식으로 바뀐다. MySQL 5.6이상부터 이런 오류들을 만나게 될텐데 현재는 옛날 암호방식과 새 암호방식 모두 지원하고 있다. 그래서 복잡하게 보일 수 있다. PHP7에선 함수들도 바뀌어서 더 그런지도 모르겠다.




잘 보일지 모르겠는데

mysql> select * from user;

해보면 새로 추가 된 사용자의 비밀번호 방식은 mysql_native_password 방식으로 바뀌어 있고 root 사용자는 caching_sha2_password로 돼 있는 걸 확인 할 수 있다.

        

Trackback 0 Comment 0