MySQL fails on: mysql "ошибка 1524 (HY000): плагин 'auth socket' не загружен"


моя локальная среда:

  • свежий Ubuntu 16.04
  • С PHP 7
  • с установленным MySQL 5.7

    sudo apt-get install mysql-common mysql-server
    

когда я попытался войти в MySQL (через CLI):

mysql -u root -p

я столкнулся с циклической проблемой с 3 шагами.

1) Сначала был какой-то вопрос сокета

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

решение: перезагрузка ПК.

что привело к еще ошибка:

2) с отказом в доступе

ERROR 1698 (28000): Access denied for user 'root'@'localhost'.

можно вопрос? Неверный пароль для пользователя "root"!

устранение: сброс пароля root с помощью этого урока.

С правильным паролем и рабочим гнездом, появляется последняя ошибка.

3) неверный плагин auth

mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"

здесь я остановился или как-то добрался до 1) снова.

4   51   2016-06-17 13:36:19

4 ответа:

у меня есть решение!

при сбросе пароля root на Шаге 2), также измените плагин auth на mysql_native_password:

use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root';  # THIS LINE

flush privileges;
quit;

это позволило мне успешно войти!


полный код решения

1. команды запустить bash

# 1. first, run these bash commands
sudo /etc/init.d/mysql stop # stop mysql service
sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql

2. затем запустите команды mysql = > скопируйте вставить это в cli вручную

use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user

flush privileges;
quit;

3. запустите больше команд bash

sudo /etc/init.d/mysql stop 
sudo /etc/init.d/mysql start # reset mysql 
mysql -u root -p root # try login to database

4. Проблема сокета (из ваших комментариев)

когда вы видите гнездо ошибка, сообщество пришло с 2 возможными решениями:

sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &

(спасибо @Cerin)

или

mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld  

(спасибо @Петру Двухреченскому)


слепые пути и возможные ошибки края

используйте 127.0.0.1 вместо localhost

mysql -uroot # "-hlocalhost" is default

может привести к ошибке" отсутствует файл " или slt.

mysql -uroot -h127.0.0.1

строительство лучше.

пропустить вопрос сокета

Я нашел много способов, чтобы создать mysqld.sock файл, изменить права доступа или символическую ссылку на него. Это не было вопросом.

пропустить my.cnf file

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

вы можете попробовать эти шаги:

остановить службу Mysql 1-й sudo /etc/init.d/mysql stop

войти в систему как root без пароля sudo mysqld_safe --skip-grant-tables &

после входа в mysql терминал вам нужно будет выполнить команды больше:

use mysql;

UPDATE mysql.user SET authentication_string=PASSWORD('[email protected]*^G'), plugin='mysql_native_password' WHERE User='root';

flush privileges;

sudo mysqladmin -u root -p -S /var/run/mysqld/mysqld.sock shutdown

после перезагрузки сервера mysql Если вы все еще сталкиваетесь с ошибкой, вы должны посетить : сброс пароля корня MySQL 5.7 Ubuntu 16.04

вы можете попробовать, как это работает для меня.

Start server:

sudo service mysql start

Теперь перейдите в папку носок:

cd /var/run

резервное копирование носок:

sudo cp -rp ./mysqld ./mysqld.bak

остановить сервер:

sudo service mysql stop

восстановить носок:

sudo mv ./mysqld.bak ./mysqld

Start mysqld_safe:

 sudo mysqld_safe --skip-grant-tables --skip-networking &

Init mysql shell:

 mysql -u root

изменить пароль:

следовательно, сначала выберите базу данных

mysql> use mysql;

теперь введите ниже два запроса:

mysql> update user set authentication_string=password('1111') where user='root';
mysql> update user set plugin="mysql_native_password" where User='root';  # THIS LINE

теперь все будет ОК.

mysql> flush privileges;
mysql> quit;

для проверки:

mysql -u root -p

готово!

вы также можете проверить имя хоста / phpmyadmin

попробуй: sudo mysql_secure_installation

работа в Ubuntu 18.04