Я установил mysql и установил пароль для root, но не смог войти, почему? - PullRequest
0 голосов
/ 12 ноября 2018

Я искал много похожих проблем и сбросил свой пароль. Я был так сильно расстроен и хочу знать, ПОЧЕМУ это случилось. Большинство проблем связано с удаленным входом в систему и анонимным пользователем, с чем я столкнулся.

после установки я выполнил

$ mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
Error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

$ sudo service mysql start
 * Starting MySQL database server mysqld
No directory, logging in with HOME=/

$ sudo mysql_secure_installation
Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: n
Please set the password for root here.

New password:

Re-enter new password:
...


Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

Затем я попытался войти и получил

~$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Я уверен, что использовал правильный пароль.

Вот таблица пользователей:

+------------------+-----------+-----------------------+
| User             | host      | plugin                |
+------------------+-----------+-----------------------+
| root             | localhost | auth_socket           |
| mysql.session    | localhost | mysql_native_password |
| mysql.sys        | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
+------------------+-----------+-----------------------+

Может кто-нибудь объяснить это?

1 Ответ

0 голосов
/ 12 ноября 2018

Просто сбросьте пароль, выполнив следующие шаги.

Источник - MYSQL Справочное руководство

1.) Войдите в систему как пользователь Unix, от имени которого работает сервер MySQL (например, mysql).

  1. Остановите сервер MySQL, если он работает. Найдите файл .pid, который содержит идентификатор процесса сервера. Точное местоположение и имя этого файла зависят от вашего дистрибутива, имени хоста и конфигурации. Распространенными местами являются / var / lib / mysql /, / var / run / mysqld / и / usr / local / mysql / data /. Как правило, имя файла имеет расширение .pid и начинается либо с mysqld, либо с имени хоста вашей системы.

Остановите сервер MySQL, отправив обычное kill (не kill -9) процессу mysqld. Используйте фактический путь к файлу .pid в следующей команде:

shell> kill cat /mysql-data-directory/host_name.pid 1

Используйте обратные кавычки (не кавычки вперед) с командой cat. Это приводит к тому, что вывод команды cat подставляется в команду kill.

  1. Создайте текстовый файл, содержащий следующую инструкцию в одной строке. Замените пароль на пароль, который вы хотите использовать.

УСТАНОВИТЬ ПАРОЛЬ ДЛЯ 'root' @ 'localhost' = ПАРОЛЬ ('MyNewPass'); 1

  1. Сохраните файл. В этом примере предполагается, что вы называете файл / home / me / mysql-init. Файл содержит пароль, поэтому не сохраняйте его там, где его могут прочитать другие пользователи. Если вы не вошли в систему как mysql (пользователь, от имени которого работает сервер), убедитесь, что у файла есть разрешения, позволяющие mysql его читать.

  2. Запустите сервер MySQL с помощью специальной опции --init-file:

shell> mysqld --init-file = / home / me / mysql-init & 1

Сервер выполняет содержимое файла, названного параметром --init-file, при запуске, изменяя пароль учетной записи root '@' localhost '.

Также могут потребоваться другие параметры, в зависимости от того, как вы обычно запускаете сервер. Например, --defaults-file может потребоваться перед --init-file.

  1. После успешного запуска сервера удалите / home / me / mysql-init.

Теперь вы должны иметь возможность подключиться к серверу MySQL от имени пользователя root с использованием нового пароля. Остановите сервер и перезапустите его как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...