ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误的解决办法


复制代码
$ sudo mysql -u root 

mysql> USE mysql; mysql> SELECT User, Host, plugin FROM mysql.user; +------------------+-----------------------+ | User | plugin | +------------------+-----------------------+ | root | auth_socket | | mysql.sys | mysql_native_password | | debian-sys-maint | mysql_native_password | +------------------+-----------------------+
复制代码

正如您在查询中看到的,根用户正在使用auth_socket插件

有两种方法可以解决这个问题:

1,可以将根用户设置为使用mysql_native_password插件
2,您可以用您的系统用户创建一个新的数据库用户(推荐)

方法一:

复制代码
$ sudo mysql -u root #使用sudo 进入mysql,执行下面语句。  mysql> USE mysql; mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> exit; $ service mysql restart
复制代码

方法二:(用你自己的用户名替换系统用户)

复制代码
$ sudo mysql -u root 

mysql> USE mysql; mysql> CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY ''; mysql> GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost'; mysql> UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER'; mysql> FLUSH PRIVILEGES; mysql> exit; $ service mysql restart
复制代码

 原创链接:https://www.cnblogs.com/sly27/p/10821745.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM