MySQL에 로그인할 수 없습니다. 액세스가 거부되었습니다.

MySQL에 로그인할 수 없습니다. 액세스가 거부되었습니다.

충돌 후 이전 설치를 통해 내 개발 컴퓨터에 Ubuntu를 다시 설치했고, 필요한 모든 패키지(mysql-server 및 mysql-client 포함)를 다시 설치한 후 개발 데이터베이스를 복원했습니다. 안타깝게도 연결할 수 없습니다.

이것은 작동합니다 :

$ sudo su
# mysql -u root

이것은 그렇지 않습니다

$ mysql -u root -p
  • 모두 제거하고 다시 설치해 보았습니다 mysql-*.
  • 재구성을 시도했습니다(예 sudo dpkg-reconfigure mysql-server-5.7: )
  • 쿼리를 사용하여 수동으로 비밀번호를 재설정해 보았습니다 UPDATE.
  • 나는 모든 것을 시도했다여기(테이블에 열이 user없고 열이 하나 있다는 password점만 제외 authentication_string)

제발, 누군가 제가 이 일을 할 수 있도록 도와줄 수 있나요?


** 편집하다 **

mysql> SELECT user, host, authentication_string, password_expired, account_locked FROM user WHERE user = 'root';
+------------------+-----------+-------------------------------------------+------------------+----------------+
| user             | host      | authentication_string | password_expired | account_locked |
+------------------+-----------+-----------------------+------------------+----------------+
| root             | localhost | *<password hash>      | N                | N              |
| root             | %         | *<password hash>      | N                | N              |
+------------------+-----------+-----------------------+------------------+----------------+
5 rows in set (0.00 sec)

root사용자 모두 동일한 비밀번호를 가지고 있으며 을 사용하여 설정했으며 PASSWORD('password')모든 권한이 플러시된 후 서비스가 다시 시작되었습니다.

문서에 나와 있는 것과 달리 실행은 sudo dpkg-reconfigure mysql-server-5.7다음과 같습니다.~ 아니다루트에 대한 새 비밀번호를 지정하라는 메시지를 표시합니다. 명령이 성공적으로 종료되지만 비밀번호를 지정하라는 메시지가 표시되지 않습니다.

답변1

나는 내 대답을 찾았습니다.여기.

기본적으로 plugin사용자에 대한 값 root@'localhost'mysql_native_password.

UPDATE user SET plugin = 'mysql_native_password' WHERE user = 'root';
FLUSH PRIVILEGES;

작동했고 마침내 슈퍼유저 권한 없이 로그인할 수 있었습니다.

답변2

MySQL 권한이 복원되지 않았을 수 있습니다. 어떤 권한 없이도 서버에 로그인할 수 있다는 사실은 루트 비밀번호를 설정하고 해당 권한을 사용해야 하는 다른 사용자를 추가해야 함을 의미합니다.

관련 정보