1

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

2 ответа2

1

Разрешения MySQL, вероятно, не были восстановлены. Тот факт, что вы можете войти на сервер без каких-либо разрешений, говорит о том, что вам нужно установить пароль root и добавить любых других пользователей, которых необходимо использовать с соответствующими разрешениями.

1

Я нашел свой ответ здесь.

По сути, значение plugin для пользователя root@'localhost' не было mysql_native_password .

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

сработало, и я наконец смог войти без привилегий суперпользователя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .