충돌 후 이전 설치를 통해 내 개발 컴퓨터에 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 권한이 복원되지 않았을 수 있습니다. 어떤 권한 없이도 서버에 로그인할 수 있다는 사실은 루트 비밀번호를 설정하고 해당 권한을 사용해야 하는 다른 사용자를 추가해야 함을 의미합니다.