出现这种问题的原因:
1、你没有开放你的远程连接权限
2、防火墙没有开放默认mysql端口3306
解决办法:
1、先开放3306端口:
>mysql -u root -p//默认密码为空,你也可以接着输入你设置的密码
>use mysql;
>update user set password=password(‘123456‘) where user=‘root‘;//123456为我设置的密码,防止改错
>sudo vim /etc/sysconfig/iptables;
然后,输入以下内容
>-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
保存退出
>sudo service iptables restart//重启防火墙使修改生效
如果重启出错,可以重启系统
2、开放远程连接权限
网上有很多种方法,但是我试过很多都是有问题的,这一种是我试过正确的
>mysql -u root -p
>use mysql;
>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
>FLUSH PRIVILEGES;
>exit;
然后重启mysql就可以了。
以下是另外两种办法:
改表法:
>mysql -u root -p
>use mysql;
>update user set host = '%' where user = 'root';
>select host, user from user;
然后重启mysql
授权法:
授权myuser这个用户从任何主机访问mysql数据库,密码是mypassword。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;