产生原因:可能是user表里存在两个root用户,第一个只允许本地连接
远程连接时,会先去访问第一个root用户;
解决方案:
1、在mysql命令行中执行
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
若以上方法行不通则用如下方法:
use mysql;
UPDATE user SET Password=PASSWORD('123456') where USER='root';
flush privileges;
2、可将第一个root用户删除:
delete from user where user='root' and host='localhost';