我遵循问题错误1698(28000)中选项2的说明:拒绝用户'root'@'localhost'的访问,并使用superuser1作为我的'your\u system\u 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时,如该答案所示,即使我在mysql命令前面加上sudo,也会发生此错误,如下所示
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)。作为一个新的mysql用户,我在创建用户时会有些犹豫,直到我变得更加熟悉为止。我是否应该将superuser1的插件更改为mysql\本地\密码?我遵循的解决方案建议对新用户不使用密码(即“.”),这会影响插件的任何更改吗?我确实查看了问题mysql error 1045(28000):拒绝用户'bill'@'localhost'的访问(使用密码:yes)和大多数其他类似问题,但看不出那里的任何建议如何解决我的问题-我最初问题的建议解决方案确实包括使用我遵循的flush特权(如我在开始时所述)。我最初的问题(仍然存在)是错误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”并将所有权限重新授予superuser1,我现在可以登录,但不需要设置密码。虽然这似乎令人满意,但我更想知道为什么会这样,以便对我所做的事情有信心
已解决
最终整个问题似乎都解决了
将两个用户的插件更改为“mysql\u native\u password”
更新mysql.user set plugin='mysql\u native\u password'其中user='root'和plugin='auth\u socket'
“auth_socket”是root的现有插件,但对于其他linux用户,它可能是“unix_socket”;和-为不包含“&”的“root”设置密码
暂无答案!
目前还没有任何答案,快来回答吧!