由于笔者只使用过16.04.4和19.04,此方法不确定在其他版本下适用
本文章介绍的方法同样适用于这样的错误信息。
? ~ mysql -u root -p Enter password: ERROR 1698 (28000): Access denied for user 'root'@'localhost'
查看默认密码
使用包管理器安装MySQL后,查看这个文件可以看到安装后的默认密码/etc/mysql/debian.cnf
,这个密码是属于debian-sys-maint
的,而非root
。
即使在这里你可能可以使用root用户登录,因为root用户默认登录方式是使用socket连接,而不验证密码。推荐继续阅读修改为使用密码连接。
修改root密码
如果需要修改先使用debian-sys-maint
登录数据库,完成一下操作
select user, plugin from mysql.user;
查看默认的连接方式。- 如果是
auth_socket
(MySQL)的连接方式,可以继续进行。 update mysql.user set authentication_string=PASSWORD(‘root‘), plugin=‘mysql_native_password‘ where user=‘root‘;
使用这一行明令将root密码修改为root。flush privileges;
应用权限- 退出并重启MySQL
MariaDB的兼容性
上面的方法仅针对MySQL测试,是否兼容MariaDB未知。
MariaDB的root默认连接方式是unix_socket
(MariaDB)
原文地址:https://www.cnblogs.com/zhuxiaoxi/p/10843659.html
时间: 2024-10-08 05:43:26