본문 바로가기

IT, Computer/Linux

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';