far

[AWS + MySQL]ERROR 1045 (28000): Access denied for user 'ubuntu'@'localhost' (using password: NO) 본문

AWS

[AWS + MySQL]ERROR 1045 (28000): Access denied for user 'ubuntu'@'localhost' (using password: NO)

Eater 2022. 12. 1. 02:50
ERROR 1045 (28000): Access denied for user 'ubuntu'@'localhost' (using password: NO)

 

결론부터 말하자면 ubuntu로 배포시 mysql을 설치했음에도 불구하고 mysql -v를 쳤을 때 위의 에러가 난다면 MySQL의 비밀번호가 설정되어 있지 않았던거였다.

 

 

 

Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost'
as the authentication method used doesn't store authentication data in the MySQL server.
Please consider using ALTER USER instead if you want to change authentication parameters.

참고로 처음 마주했던 에러는 AWS배포 도중 백엔드에 MySQL을 설치한 뒤 MySQL설정을 위해 mysql_secure_installation를 시작하고 비밀번호를 설정했더니 나타난 이 에러였다. root권한이 아닌 상태로 비밀번호를 설정했다는 것.

 

그래서 일단 mysql_secure_installation를 빠져나와 mysql -u root -p 입력 후 비밀번호 변경을 위해 아래의 코드를 입력 했는데,

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '새로운비밀번호';

 

ERROR 1045 (28000): Access denied for user 'ubuntu'@'localhost' (using password: YES)

비밀번호가 틀렸을 때 나오는 에러가 떴다.

 

 

sudo mysql -u root

그래서 일단 초기에 설정된 mysql의 root 계정의 패스워드 타입을 바꾸기 위해  sudo mysql -u root입력 후

(sudo 없이 mysql -u root입력하면 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 에러가 뜬다)

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

 

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

순서대로 입력하면 root이 auth_socket으로 되어있는게 보이는데 이 값을

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

위 명령어를 통해 mysql_native_password로 변경해주면 로그인이 가능해진다. 하지만 아직 비밀번호가 설정되어 있지 않은 상태라서 mysql -v입력시 나타나는 ERROR 1045 (28000): Access denied for user 'ubuntu'@'localhost' (using password: NO)에러는 여전하다. 즉, 다시 한 번 비밀번호를 설정해줘야하는 상황.

 

mysql -u root -p

비밀번호 재설정을 위해 mysql -u root -p를 입력한다.

그러면 Enter password: 가 나오는데 일단 엔터를 누르고

alter user 'root'@'localhost' identified with mysql_native_password by '바꿀 비밀번호';

를 입력하면 끝.

 

 

set global validate_password.policy=LOW;

만약 비밀번호 설정이 안된다면 보안을 LOW레벨로 내려서 간단하게 설정을 해보자.

Comments