비밀번호 타입 변경

ubuntu같은 일부 리눅스 시스템에서 mysql을 설치하고, $ mysql -u root -p 으로 로그인 시도를 했더니..!mysql ERROR 1698 (28000): Access denied for user 'root'@'localhost' 라는 에러가 발생한다.

구글링을 해보았더니 기본적으로 초기설정되어있는 mysql의 root 계정의 패스워드 타입때문인데 이 타입을 변경해주면 해결되는 문제라고 한다.

참고한 블로그 내용을 정리해보았다.

$ sudo mysql -u root # sudo를 사용하여 root계정으로 mysql에 접속한다. 

mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;

+------------------+-----------------------+
| User             | plugin                |
+------------------+-----------------------+
| root             | auth_socket           |
| mysql.sys        | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+

rootpluginauth_socket으로 되어있는데 이값을 mysql_native_password으로 변경해주면 된다

mysql> update user set plugin='mysql_native_password' where user='root';

mysql> flush privileges;

mysql> select user, host, plugin from user;

+------------------+-----------------------+
| User             | plugin                |
+------------------+-----------------------+
| root             | mysql_native_password |
| mysql.sys        | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
mysql> exit;

다시 mysql 접속해서 로컬아이디 비밀번호 변경하기

아래와같이 입력해준후, mysql -u(계정 접근) [계정명] -p(비밀번호 입력)

$ mysql -u root -p

mysql에서 아래와같이 명령어를 입력해주면 MySQL root 계정 비밀번호 세팅이 된다.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[yourPassword]'; 

[yourPassword]에는 원하는 비밀번호를 입력하면된다. 이제 클라이언트에 접속할때 password는 [yourPassword]를 입력해주면 된다..!ㄷ