现象:可以通过服务器本身部署的phpMyadmin访问到mysql,但是无法通过telnet之类的远程连接。 可能的问题: 1.数据库没有公网 2.IPtable规则中去掉了3306 执行下 iptables -L 命令,iptables这个是linux本机的防火墙命令 如果对3306端口进行了限制,这里面就应该有3306 3.数据库监听在了127.0.0.1 使用netstat -an|grep 3306,输出: tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
说明3306只绑定了127.0.0.1
首先修改vi /etc/mysql/my.cnf 将bind-address = 127.0.0.1注释掉
然后重启mysql,/etc/init.d/mysql restart
4.访问的账户没有被授权 mysql好像是默认只能本地访问,需要开放远程访问权限其他ip地址的机器才能访问它
为需要远程登录的用户赋予权限 1、新建用户远程连接mysql数据库 grant all on *.* to admin@'%' identified by '123456' with grant option; flush privileges; 允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。 注意admin账户不一定要存在。
2、支持root用户允许远程连接mysql数据库 grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; flush privileges;
查看系统用户 最后,如果输入,就可以登录了成功了 mysql -h IP地址 -P 3306 -u 用户名 -p 数据库名