Невозможно войти в MySQL, доступ запрещен

Невозможно войти в MySQL, доступ запрещен

После сбоя я переустановил 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 и добавить любых других пользователей, которых нужно использовать, с их соответствующими разрешениями.

Связанный контент