1、解决方法
首先一定要确定防火墙没有屏蔽3306端口
① 所有的地址都可以使用root用户,密码为mysql远程访问所有的数据库
grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option;
② 刷新权限
flush privileges;
2、没有解决?
① 以 root 权限登录:
mysql -u root -p123
② 选择数据库:
use mysql;
③ 指定 root,修改 root 帐号和密码,修改 host 值
mysql> update user set password=password('123') where user='root' and host='%';
④ 刷新 MySQL 的系统权限相关表:
mysql> flush privileges;
3、还是没有解决?
如果上面的方式还没有解决,那应该是因为:MySQL本地登录密码(123),而你又重新设置了一个密码(456),这两个密码不一样,因此远程连接数据库的时候失败
① 以 root 权限登录,并填写密码:
mysql -u root -p123
② 选择数据库:
use mysql;
③ 查看user表:密码不一致
select user,host,password from user;
④ 重新设置MySQL密码,为本地服务器MySQl的登录密码(就是mysql -uroot -p123中的123,你能变成456):
update user set password=password('123') where user='root' and host='%';
⑤ 再次查看user表:密码一致了
select user,host,password from user;
⑥ 刷新 MySQL 的系统权限相关表:
flush privileges;