错误1698(28000):在Ubuntu 18.04上对用户'root'@'localhost'的访问被拒绝


Answers:


46

我在这里链接找到了一个解决方案,通过遵循此解决方案,我已经解决了我的问题。

简短的步骤是:

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 

注意:这test是root用户的新密码。另外,请记住sudo service mysql restart在更改用户后运行命令。


谢谢。奇怪的是mysql服务器不再支持输入密码。
加莫夫

1
错误1064(42000):您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以在'USER'root'@'localhost'附近使用正确的语法IDENTIFIEDD with mysql_native_password BY'b230mehonot'在第1行
alhelal

同样的错误在这里... :(
user1111929

@alhelal,该解决方案适用于MySQL,而不适用于MariaDB。因此,您可以尝试其他解决方案。
Ashrafuzzaman Sujan

不要写mysql -u root,只需写“ sudo mysql”,在运行MySQL 5.7(及更高版本)的Ubuntu系统中,默认情况下,root用户通过auth_socket插件进行身份验证。
ravisoni

13

我发现了另一种更好的方法,因为我们不需要为本地系统提供任何密码。
如下。

打开终端并输入

sudo mysql -u root -p

它将提示您使用mysql,在这里您可以触发任何mysql命令。

使用mysql表更改表类型,因此我们可以使用空密码。波纹管是它的命令

USE mysql;

现在我们通过以下命令更改表的类型

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

现在我们必须刷新特权,因为我们使用了UPDATE。如果直接在授予表上使用INSERT,UPDATE或DELETE,则需要使用FLUSH PRIVILEGES才能重新加载授予表。

FLUSH PRIVILEGES;

现在通过以下命令从mysql退出

exit;

现在通过以下命令重新启动mysql服务器

service mysql restart

希望这会有所帮助

谢谢。


2
这是正确的答案
Ningappa

谢谢您
乐意
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.