mysql8 유저 생성
# systemctl start mysqld
# mysql -uroot -p
Enter password:
우선 생성할 유저가 사용할 데이터베이스를 만듭니다.
mysql> CREATE DATABASE goat_gnu ;
(goat가 사용할 그누보드 데이터베이스라는 의미로 이름을 작성한겁니다.)
유저를 생성합니다.
mysql> CREATE USER 'goat'@'localhost' IDENTIFIED BY 'New_password1' PASSWORD EXPIRE NEVER ;
mysql> CREATE USER 'goat'@'172.30.1.%' IDENTIFIED WITH mysql_native_password BY 'New_password1' PASSWORD EXPIRE NEVER ;
goat라는 유저를 생성
하나는 local에서만 접속가능하며, 하나는 172.30.1 대역에서 접속이 가능
local접속용 패스워드는 mysql8의 보안성좋은 비밀번호, 172.30.1대역 접속용은 호환성좋은 비밀번호로 구성
둘다 패스워드 만료기간이 없게 만듦
참고 ※ 유저삭제 mysql> DROP USER 'goat'@'localhost' ;
※ 패스워드변경 mysql> ALTER USER 'goat'@'localhost' IDENTIFIED BY '비밀번호' ;
※ 패스워드 및 플러그인 변경 [로컬용계정의 패스워드를 mysql_native_password로 변경하고 패스워드만료기간을 기본값으로설정] mysql> ALTER USER 'goat'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호' PASSWORD EXPIRE DEFAULT ; [다시 원래대로 돌려놓는법] mysql> ALTER USER 'goat'@'localhost' IDENTIFIED WITH caching_sha2_password BY '비밀번호' PASSWORD EXPIRE NEVER ; |
유저가 제데로 안착되어있는지 확인해봅니다.
mysql> use mysql ;
mysql> SELECT host, user, plugin, LEFT(authentication_string,15) AS password, password_last_changed FROM user ;
+------------+------------------+-----------------------+-----------------+-----------------------+
| host | user | plugin | password | password_last_changed |
+------------+------------------+-----------------------+-----------------+-----------------------+
| 172.30.1.% | goat | mysql_native_password | *E8B8B68787B509 | 2019-03-28 23:51:34 |
| localhost | goat | caching_sha2_password | $A$005$) x+|0= | 2019-03-28 23:51:23 |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISAC | 2019-03-26 19:23:20 |
| localhost | mysql.session | caching_sha2_password | $A$005$THISISAC | 2019-03-26 19:23:20 |
| localhost | mysql.sys | caching_sha2_password | $A$005$THISISAC | 2019-03-26 19:23:20 |
| localhost | root | caching_sha2_password | $A$005$}cQx@i8= | 2019-03-26 19:24:17 |
+------------+------------------+-----------------------+-----------------+-----------------------+
6 rows in set (0.00 sec)
생성된 유저들에게 goat_gnu의 db권한을 줍니다. 여기선 모든권한을 줬습니다.
mysql> GRANT ALL PRIVILEGES ON goat_gnu.* TO 'goat'@'localhost' ;
mysql> GRANT ALL PRIVILEGES ON goat_gnu.* TO 'goat'@'172.30.1.%' ;
mysql> FLUSH PRIVILEGES ;
※ goat로컬계정 모든권한 삭제 mysql> REVOKE ALL PRIVILEGES ON *.* FROM 'goat'@'localhost'; |