○ 사용자 추가하기
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로 돼 있는 걸 확인 할 수 있다.
'프로그래밍 > MySQL' 카테고리의 다른 글
MySQL8.x부터는 password() 함수를 지원하지 않는다. (0) | 2019.09.03 |
---|---|
MySQL 백업(Dump)받고 복구하기 (0) | 2019.09.03 |
MySQL 데이터베이스 생성 후 권한 주기까지 (0) | 2019.09.03 |