我遵循问题 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 中选项2的说明,并使用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):尝试按该答案中的建议登录到mysql时,用户'superuser1'@'localhost'的访问被拒绝,即使我将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:~$
我正在使用服务器版本:Linux Mint 19上的5.7.23-0ubuntu0.18.04.1(Ubuntu) 在新的桌面安装上。 作为一个新的mysql用户,我在创建用户时会有点尝试,直到我变得更加熟悉为止。 我应该将超级用户1的插件更改为mysql_native_password吗? 我遵循的解决方案建议不为新用户使用密码(即``'')-这会影响插件的任何更改吗? 我确实查看了问题MySQL ERROR 1045 (28000): Access denied for user 'bill'@'localhost' (using password: YES)和大多数其他类似问题,但看不到那里的任何建议如何解决我的问题-我最初问题的建议解决方案确实包括使用我遵循的FLUSH PRIVILEGES一开始)。我最初的问题(仍然存在)是ERROR 1698 (28000): Access denied for user '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”
UPDATE mysql.user SET plugin ='mysql_native_password'WHERE user ='root'AND plugin ='auth_socket'
'auth_socket'是root的现有插件,但对于其他Linux用户,它可能是'unix_socket';和
-为