Linux 服务器搭建好环境后数据库外部无法连接
出现这种现象的原因有两个,一个是当前用户被mysql服务器拒绝,另外一个原因是3306端口被被防火墙禁掉,无法连接到该端口。解决方法如下:
1.设置远程用户访问权限:
// 任何远程主机都可以访问数据库
/登录数据库
mysql -u root -pvmwaremysql>use mysql;
//%为所有ip都可以远程访问
mysql>update user set host = ‘%’ where user = ‘root’;
//或直接添加一条语句也行
mysql>insert into user (host,user,password) values(‘192.168.0.51’,’root’,password(‘123’));
//查看一下修改
mysql>select host, user from user;
//推送设置到内存或重启服务器也行
mysql>FLUSH PRIVILEGES
2.
GRANT ALL PRIVILEGES ON 表名.* TO ‘用户名’@’%’ IDENTIFIED BY ‘密码’ WITH GRANT OPTION;
如果是固定ip就这么写
grant all privileges on . to ‘root’@’192.168.0.49’identified by ‘123’ with grant option;
//推送设置到内存或重启服务器也行
mysql>FLUSH PRIVILEGES
2.在iptables中开放3306端口
#/sbin/iptables -I INPUT -p tcp –dport 3306 -j ACCEPT
#/etc/rc.d/init.d/iptables save 保存:
# service iptables restart 重启生效
当然除了开放3306端口外,还有一个方法就是关闭防火墙,命令为:
# service iptables stop
不过,不推荐这种做法,因为这会引起安全性问题。
最后一种就是阿里云控制台里面被限制了