我安装了MySQL 5.7,并希望为root启用无密码登录。
所以我执行了
mysql> update mysql.user set plugin='' where User='root';
mysql> flush privileges;
现在我无法以root用户身份登录。没有密码也没有密码。我分别收到以下错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
我使用mysqld_safe阅读了有关解决方案但由于我们使用的是systemd,因此我无法使用它。
有什么建议吗?理想情况下,没有重新启动mysqld但是......
我也试过
mysqladmin flush-privileges
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
答案 0 :(得分:1)
" 建议"
Accckkk!我无法理解什么会迫使某人认为root
用户无需身份验证登录是一个好主意。
我建议我们重新考虑一下"无密码"登录特权用户。 (这将是安全审计的红旗。)如果我绝对必须实施无密码登录(因为已经排除了所有其他可能的替代解决方案),我只会为非常严格限制的用户执行此操作特权。
实施"无密码"在MySQL中登录,我们可以'native_mysql_password'
使用plugin
,''
使用空字符password
。
(我不知道我们有什么理由要将plugin
设置为空字符串。)
答案 1 :(得分:0)
好的,所以我最终停止了mysqld并执行了以下操作
systemctl stop mysqld
/usr/sbin/mysqld --skip-grant-tables &
mysql -u root
mysql> update mysql.user set plugin = 'mysql_native_password' where user = 'root';
mysql>flush privileges;
systemctl stop mysqld
systemctl start mysqld
它再次工作