검색하기 귀찮아서 블로그에 박제

Access denied for user 'root@'@'localhost' 해결방법

oziguyo_ 2020. 9. 26. 14:47
728x90
mysql> use mysql;
mysql> UPDATE user set password=password("1234") where user = 'root';

Ubuntu에서 mysql의 root계정 로그인이 안되는 경우 해결방법 !

 

 

ubuntu같은 일부 리눅스 시스템에서 mysql을 설치하고 

$ mysql -u root -p 으로 로그인 시도를하면 

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

위처럼 root의 plugin이 auth_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;

Bye

이제 다시 root로 접속해보면 잘 접속이 될 것이다.

 (+ 패스워드 따로 입력없이 접속 가능합니다. 엔터키만 누르세요)

$ mysql -uroot -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 14

Server version: 8.0.21-0ubuntu0.20.04.4 (Ubuntu)



...

 

 

 

 

728x90