본문 바로가기

MySQL8.x에서 데이터베이스 생성하기. 사용자 추가 / 삭제

728x90
반응형

○ 사용자 추가하기
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@\zRY1GAWFMJcFp3O4P7OskPw/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로 돼 있는 걸 확인 할 수 있다.

728x90
반응형