[ERROR]mysql ERROR 1698 (28000): Access denied for user 'root'@'localhost'

마데슾 : My Dev Space·2020년 3월 26일
2

ERROR

목록 보기
2/4

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;

Bye

로그인이 잘되었다..!

좋은글 남겨주신 블로거님 덕분에 해결가능했다..!! 감사합니다 ㅎㅎㅎ

터미널에서 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]를 입력해주면 된다..!

참고블로그

ubuntu에서 mysql의 root계정이 로그인 안될때.

profile
👩🏻‍💻 🚀

1개의 댓글

comment-user-thumbnail
2021년 1월 14일

감사합니다. 덕분에 한줄기 빛을 발견하여 무사히 잠을 잘수 있었습니다.

답글 달기