引言
今天碰到了一个奇怪的问题,前几天设置了MariaDB root用户远程访问权限并修改了密码。今天服务器报Access denied for user 'root'@'localhost' (using password: YES)
解决方法
MariaDB版本为: mysql Ver 15.1 Distrib 10.1.37-MariaDB
在确定密码没问题(通过远程可以成功登录,本地服务器通过mysql -u root -p
也可以登录)后,还是报这个问题:
首先执行下查询:
SELECT plugin from user where User = 'root';
如果看到结果不空,为mysql_native_password
,那么就执行:
update user set plugin='' where User='root';
flush privileges;
刷新页面,数据成功出来了!
MySQL修改密码
附上忘记密码后修改密码步骤:
$ mysqld --skip-grant-tables
$ mysql -u root mysql
$mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root';
$mysql> FLUSH PRIVILEGES;
如果碰到unknown field Password error
则执行:
update user set authentication_string=password('my_password') where user='root';
最后重启mysql服务
$ /etc/init.d/mysql restart