ОШИБКА 1698 (28000): доступ запрещен для пользователя 'superuser1' @ 'localhost' - PullRequest
0 голосов
/ 20 октября 2018

Я следовал инструкциям для варианта 2 в вопросе ОШИБКА 1698 (28000): доступ запрещен для пользователя 'root' @ 'localhost' и использовал superuser1 в качестве моего 'YOUR_SYSTEM_USER' (см. Код ниже).

$ sudo mysql -u root 
mysql> USE mysql;
mysql> CREATE USER 'superuser1'@'localhost' IDENTIFIED BY '';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'superuser1'@'localhost';
mysql> UPDATE user SET plugin='auth_socket' WHERE User='superuser1';
mysql> FLUSH PRIVILEGES;
mysql> exit;

$ service mysql restart

Теперь я получаю ОШИБКУ 1698 (28000): доступ запрещен для пользователя 'superuser1' @ 'localhost' при попытке войти в mysql, как предлагается в этом ответе, эта ошибка возникает, даже если я добавляю sudoк команде mysql, как показано ниже

hms011@hms011-OptiPlex-9010-AIO:~$ sudo mysql -u superuser1
[sudo] password for hms011: 
ERROR 1698 (28000): Access denied for user 'superuser1'@'localhost'
hms011@hms011-OptiPlex-9010-AIO:~$ 

Я использую версию сервера: 5.7.23-0ubuntu0.18.04.1 (Ubuntu) в Linux Mint 19 на новой установке на рабочем столе.Будучи новым пользователем mysql, я несколько осторожен при создании пользователей, пока не стану более знакомым.Должен ли я изменить плагин для моего суперпользователя1 на mysql_native_password?Решение, за которым я следовал, предлагало не использовать пароль (т. Е. '') Для нового пользователя - повлияет ли это на изменение плагина?Я действительно посмотрел на вопрос Ошибка MySQL 1045 (28000): доступ запрещен для пользователя 'bill' @ 'localhost' (с использованием пароля: ДА) и большинства других подобных вопросов, но я не смог увидеть, как ни одно из предложенийтам можно было бы решить мою проблему - предлагаемое решение моей первоначальной проблемы включало в себя использование FLUSH PRIVILEGES, за которым я следовал (как я уже говорил в самом начале).Моя первоначальная проблема (которая остается) была ОШИБКА 1698 (28000): доступ запрещен для пользователя 'root' @ 'localhost' В отличие от некоторых других пользователей, он не был решен с использованием рекомендованного варианта 2 в этой теме.Поэтому я поднял свою собственную проблему, возможно, я был слишком лаконичен в своем первоначальном описании, поэтому теперь включил код для решения варианта 2, упомянутый выше, вместе с возникающей ошибкой при входе в систему.

В отсутствие какой-либо помощиЯ попытался:

hms011@hms011-OptiPlex-9010-AIO:~$ sudo mysql -u root
[sudo] password for hms011: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.23-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant all privileges on *.* to 'superuser1'@'localhost' identified by 'toFFee8_&cHeese' with grant option;
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye
hms011@hms011-OptiPlex-9010-AIO:~$ mysql -u superuser -p
Enter password: {password was entered}
ERROR 1045 (28000): Access denied for user 'superuser'@'localhost' (using     password: YES)

hms011@hms011-OptiPlex-9010-AIO:~$ sudo mysql -u superuser -p
Enter password: {password was entered}
ERROR 1045 (28000): Access denied for user 'superuser'@'localhost' (using password: YES)

Так что теперь я получаю ОШИБКУ 1045 (28000), но я не знаю, почему это произошло (или другие ошибки).Наконец, я вернулся к «root» и снова предоставил все привилегии суперпользователю1. Теперь я могу войти в систему, но без пароля, который был установлен.Хотя это кажется удовлетворительным, я бы предпочел узнать, почему это так, чтобы быть уверенным в том, что я сделал


Решено

В конце концов вся проблема, кажется, решенапосле

  • Изменение плагина для обоих пользователей на 'mysql_native_password'

    ОБНОВЛЕНИЕ mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'auth_socket'

' auth_socket 'был существующим плагином для root, но для других пользователей Linux это может быть' unix_socket ';и - Установка пароля для «root», который НЕ включает «&»

...