Ubuntu MySQL접속 오류
mysql -u root -p 접속 오류
- aws에서 ubuntu22.04버전(프리티어)을 실행하여 mysql을 설치하였는데
mysql -u root -p
을 입력했는데 비밀번호를 설정한 적이 없으나 비밀번호가 걸려있음
문제 상황
mysql -u root -p
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
- 비밀번호 창에 빈 enter를 쳤는데도
Access denied
발생
- sudo 권한으로 실행 후 접속은 가능하나
GRANT
구문을 사용하려고 하는데 권한이 없다는 오류 발생
해결방법
- 확인해보니 ubuntu같은 일부 리눅스 시스템에서는 mysql에서는 설치 후 plugin이
auth_socket
으로 자동으로 되어 있어서 접속 불가
use mysql;
select user, host, plugin from mysql.user;
+
| User | Host | plugin |
+
| debian-sys-maint | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | auth_socket |
+
- 이를
mysql_native_password
로 변경해주면 일반적으로 로그인 가능
update user set plugin='mysql_native_password' where user='root';
flush privileges;
select user, host, plugin from user;
+
| user | host | plugin |
+
| debian-sys-maint | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | mysql_native_password |
+
- 이후 다시
myqsl -u root -p
를 입력하고 비밀번호 창에 패스워드 입력 없이 그냥 엔터를 치면 접속이 됨
참고