Невозможно войти на мой сервер mySql как root и не удалось сбросить пароль root.
Я пытаюсь получить доступ к базе данных mySql и создать ее резервную копию, но безуспешно. Я знаю пароль root, но если я попытаюсь войти в БД, используя его, я получу
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
ошибка.
Я пытался следовать различным руководствам о том, как изменить пароль root mySql, но безуспешно:
- попытался перезапустить mySql в безопасном режиме и
ALTER
работа с системной таблицей - попытался использовать mysqladmin для смены пароля (как описано здесь)
- попытался использовать файл конфигурации с
mysqld --init-file=./mysql-init &
Все они терпят неудачу с одной и той же ошибкой. Мой план состоял в том, чтобы сделать резервную копию БД перед отключением сервера, но, не имея возможности войти в систему, я не могу ничего сделать резервную копию.
Я обнаружил проблему с паролем root, поскольку заметил, что не могу войти в базу данных с помощью phpMyAdmin или Webmin. Все остальные пользователи БД (те, которые созданы для разных приложений), похоже, работают, поскольку я не вижу ничего сломанного в своих интерфейсах.
Могу ли я выполнить какой-либо другой тест, чтобы восстановить пароль? Или есть ли простой способ сделать резервную копию моих данных, прежде чем все выбрасывать?
Система:Ubuntu 18.04.6 LTS (GNU/Linux 4.15.0-193-generic x86_64)
Версия MySQL:mysql Ver 14.14 Distrib 5.7.39, for Linux (x86_64) using EditLine wrapper
Заранее благодарю, С.
ОБНОВЛЯТЬ
Попытка того, что @user9517 предложил в своем комментарии, привела к:
# mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
Error: Access denied for user 'root'@'localhost' (using password: YES)
# mysql --protocol=tcp -uroot -pPASSWORD
mysql: [Warning] Using a password on the command line interface can be insecure.
(and terminal freezed)
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (110)
ОБНОВЛЕНИЕ 2
Мне удалось войти в систему, используя--skip-grant-tables
вариант, после создания вручную/var/run/mysqld
файл, который отсутствовал в моей системе. Мне удалось обновить пароль и перезагрузить систему. Но я все еще не могу войти в свою базу данных какroot
. Я думаю, проблема не в пароле, а в какой-то конфигурации. Если я проверю содержимоеuser
table, я вижу этот вывод:
SELECT * FROM user WHERE User = 'root'
+-----------+------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+-----------------------+-------------------------------------------+------------------+-----------------------+-------------------+----------------+
| Host | User | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | plugin | authentication_string | password_expired | password_last_changed | password_lifetime | account_locked |
+-----------+------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+-----------------------+-------------------------------------------+------------------+-----------------------+-------------------+----------------+
| * | root | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 | mysql_native_password | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | N | 2018-01-10 10:58:05 | NULL | N |
| 127.0.0.1 | root | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 | mysql_native_password | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | N | 2018-01-10 10:58:05 | NULL | N |
| ::1 | root | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 | mysql_native_password | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | N | 2018-01-10 10:58:05 | NULL | N |
+-----------+------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+-----------------------+-------------------------------------------+------------------+-----------------------+-------------------+----------------+
Есть идеи, что я могу проверить, чтобы решить проблему?
ОБНОВЛЕНИЕ 3
Как ни странно, если я попытаюсь подключиться к серверу с помощью SequelPro через ssh, я смогу подключиться, просмотреть таблицы и экспортировать их...
2 ответа
ДЛЯ AWS Linuxsystemctl stop mysqldsystemctl set-environment MYSQLD_OPTS=--skip-grant-tablessystemctl start mysqld mysql mysql> ОБНОВЛЕНИЕ mysql.user SET аутентификация_строка = ПАРОЛЬ ('ENTER_NEW_PASSWORD') ГДЕ Пользователь = 'root' И Хост = 'localhost';mysql> УДАЛЕНИЕ ПРИВИЛЕГИЙ;mysql> выйти из systemctl остановить mysqldsystemctl unset-environment MYSQLD_OPTS systemctl запустить mysqld
mysql -u root@localhost -p
Я использую CentOS Linux версии 7.9.2009 (Core) — MySQL Ver 14.14 Distrib 5.7.36. MYSQLD_OPTS — это ключ.
systemctl stop mysqld
systemctl set-environment MYSQLD_OPTS=--skip-grant-tables
systemctl start mysqld
mysql
mysql> UPDATE mysql.user SET authentication_string = PASSWORD ('ENTER_NEW_PASSWORD') WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
systemctl stop mysqld
systemctl unset-environment MYSQLD_OPTS
systemctl start mysqld
# test #
mysql -u root@localhost -p
Надеюсь, это работает в вашей среде.