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 ответов:
у меня есть решение!
при сбросе пароля 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 mysql2. затем запустите команды 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 database4. Проблема сокета (из ваших комментариев)
когда вы видите гнездо ошибка, сообщество пришло с 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.cnffileвопрос также не было. Если вы не уверены, это может помочь вам.
вы можете попробовать эти шаги:
остановить службу 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('solutionclub3@*^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 ./mysqldStart 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
Comments