не могу войти в mysql Ubuntu 18.04 - PullRequest
       2

не могу войти в mysql Ubuntu 18.04

0 голосов
/ 20 сентября 2018

когда я установил сервер mysql на машину с Ubuntu с помощью этой команды

sudo apt-get install mysql-client mysql-server 

команда выполнена успешно, но во время установки mysql не спрашивал меня о пароле, поэтому я не могу войти в mysql, кроме как как пользователь rootдругими словами, если я записываю в командную строку эту команду

sudo mysql -uroot -p

, я могу войти в MySQL, даже если я каждый раз меняю пароль, сервер не имеет значения для пароля, если я использовал sudo.так, как я могу решить эту проблему (установить новый пароль), когда я вошел в mysql, я попытался изменить пароль из таблицы mysql.user, используя этот запрос

mysql> UPDATE mysql.user SET Password= PASSWORD('rootroot') WHERE User = 'root';

, но в таблице mysql.user нет столбца Password

Ответы [ 3 ]

0 голосов
/ 20 сентября 2018

Причина в том, что при недавней установке Ubuntu (может быть, и другие) mysql по умолчанию использует плагин UNIX auth_socket.

В основном означает, что: db_users, использующие его, будут "auth" учетными данными пользователя системы,Вы можете увидеть, настроен ли ваш пользователь root следующим образом:

$ sudo mysql -u root # I had to use "sudo" since is new installation

  mysql> USE mysql;
  mysql> SELECT User, Host, plugin FROM mysql.user;

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

Как видно из запроса, пользователь root использует плагин auth_socket

2 способа решить эту проблему:

Вы можете настроить пользователя root на использование плагина mysql_native_password. Вы можете создать нового пользователя db_user с вашим system_user (рекомендуется) Опция 1:

$ sudo mysql -u root # I had to use "sudo" since is new installation

mysql> USE mysql;
 mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

 $ service mysql restart
0 голосов
/ 28 ноября 2018

MySQL по умолчанию создает пароль для root @ hostname

Я пытался найти пароль из каталогов MySQL, но безуспешно.

Итак, я пыталсясброс пароляЯ выполнил следующие шаги:

# Stop MySQL
sudo service mysql stop

# Make MySQL service directory.
sudo mkdir /var/run/mysqld

# Give MySQL user permission to write to the service directory.
sudo chown mysql: /var/run/mysqld

# Start MySQL manually, without permission checks or networking.
sudo mysqld_safe --skip-grant-tables --skip-networking &

# Log in without a password.
mysql -uroot mysql

**Update password for root**

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='%';

EXIT;

# Turn off MySQL.
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

# Start the MySQL service normally.
sudo service mysql start

В противном случае, пожалуйста, обратитесь по этой ссылке

0 голосов
/ 20 сентября 2018

Я думаю, вы должны использовать authentication_string вместо Password.

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