오늘의 나보다 성장한 내일의 나를 위해…













Zookeeper와 Kafka 서버를 킨 후 Kafka Source Connect를 하던 중 에러가 발생했다.

java.sql.SQLException: Access denied for user


아래 사진처럼 postman를 사용해 connect를 시도했다.



결과는 잘 나왔지만 ubuntu 터미널에서는 계속 Access denied for user~를 띄워줬다.

:pushpin: 해결 방법


먼저 ubuntu에서 mysql -uroot -p를 입력하고 mysql에 접속하게 될 때 아래와 같은 에러가 발생할 것이다.


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


결론적으로 이것은 sudo를 사용해 접속이 가능하다

sudo mysql -uroot -p


여기서 sudo를 빼고 접속할 수만 있으면 우리의 문제는 해결된다.


일단 문제는 기본적으로 초기 설정되어 있는 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


다시 시도하면 Access Denied 없이 작동한다!


YoungKyonYou

Integration of Knowledge