在phpMyAdmin用root登陆MySQL出错,密码是对的就是登不上。提示:
mysqli::real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'
其实就是root的验证方式的问题,以下解决方法在MariaDB10.3中验证有效。推荐解决方法2。
解决办法1:
去掉root用户的验证插件,或者验证方式改为mysql_native_password
USE mysql; UPDATE user SET plugin="" WHERE user="root"; //或者 UPDATE user SET authentication_string=password("123456"),plugin='mysql_native_password' WHERE user='root'; FLUSH PRIVILEGES; //如果要恢复root的登录验证方式使用以下语句。不用root用户登陆是安全的做法。 UPDATE user SET plugin="unix_socket" WHERE user="root"; FLUSH PRIVILEGES;
解决办法2:
新建一个用户pmauser并给予最大权限
CREATE USER 'pmauser'@'%' IDENTIFIED BY 'pmauser'; GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'%' WITH GRANT OPTION;