无法将root MySQL密码设置为null

时间:2016-10-02 01:41:21

标签: mysql ubuntu-16.04 mysql-5.7

安装mysql时,我没有在root密码字段中添加任何内容,但是当我运行mysql -u root时,我仍然有Access denied for user 'root'@'localhost'

我在没有授权表sudo mysql_safe --skip-grant-tables &的情况下以安全模式启动mysql,然后使用mysql -u root跳转而没有问题。

然后我做了use mysql; update user set authentication_string=null where user='root';我得到了:

Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

任何人都知道密码未更新的原因?

2 个答案:

答案 0 :(得分:0)

你忘记了

FLUSH PRIVILEGES;

一步一步就是这样

停止MySQL服务器。

sudo /etc/init.d/mysql stop

启动mysqld配置。

sudo mysqld --skip-grant-tables &

以root身份登录MySQL。

mysql -u root mysql

用新密码替换YOURNEWPASSWORD!

UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE User='root'; FLUSH PRIVILEGES; exit;

答案 1 :(得分:0)

我必须将插件设置为mysql_native_password,因此密码重置部分如下所示:

update user set authentication_string=password(''), plugin='mysql_native_password' where user='root'; FLUSH PRIVILEGES;