После сбоя я переустановил Ubuntu на своей машине dev поверх предыдущей установки, и после переустановки всех необходимых пакетов (включая mysql-server и mysql-client) я продолжил восстановление базы данных dev. К сожалению, я не могу подключиться.
Это работает :
$ 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
делаетнетпредложить мне указать новый пароль для root. Команда завершается успешно, но мне никогда не предлагается указать пароль.
решение1
Я нашел свой ответ,здесь.
По сути, plugin
ценность для пользователя root@'localhost'
не была mysql_native_password
.
UPDATE user SET plugin = 'mysql_native_password' WHERE user = 'root';
FLUSH PRIVILEGES;
сработало, и я наконец смог войти в систему без прав суперпользователя.
решение2
Разрешения MySQL, вероятно, не были восстановлены. Тот факт, что вы можете войти на сервер без каких-либо разрешений, предполагает, что вам нужно установить пароль root и добавить любых других пользователей, которых нужно использовать, с их соответствующими разрешениями.