开放3306端口,远程连接MySQL

来源:互联网 发布:c语言socket编程指南 编辑:程序博客网 时间:2024/05/23 10:59

使用Navicat远程连接阿里云服务器的MySQL数据库,一直提示错误:

2003- Can’t connect mysql Server on ’ ‘(10038)

初步怀疑是3306端口没有打开,检查步骤如下: 
1、使用nestat命令查看3306端口状态:

~# netstat -an | grep 3306 
tcp 0 0 (服务器本地ip地址):3306 0.0.0.0:* LISTEN

从结果可以看出3306端口只是在(服务器本地ip地址)上监听,所以拒绝了其他IP的访问。 
2、确定问题时因为3306端口没有开放,那么就需要修改MySQL的配置文件来解决: 
使用命令 vim/etc/mysql/my.cnf打开MySQL配置文件,可以看到如下配置信息:

#Instead of skip-networking the default is now to listen only on  
# localhost which is more compatible and is not less secure. 
bind-address = (服务器本地ip地址)

把最后一行注释掉或者把(服务器本地ip地址)换成你希望的IP 
3、使用命令 service mysql restart重启MySQL服务 
4、再次使用Navicat用root账户尝试连接,发现可以正常连接 




远程连接Mysql服务器的数据库,错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx  is not allowed to connect to this MySQL server  
猜想是无法给远程连接的用户权限问题。 
这样子操作mysql库,即可解决。 
 
在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称'%'即可 
mysql -u root -p  
mysql;use mysql;  
mysql;select 'host' from user where user='root';  
mysql;update user set host = '%' where user ='root';  
mysql;flush privileges;  
mysql;select 'host'   from user where user='root'; 
 
 
第一句:以权限用户root登录  
第二句:选择mysql库  
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)  
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址  
如果这步出错"ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'" 由说明该记录有了,跳过这步
第五句:刷新MySQL的系统权限相关表  
第六句:再重新查看user表时,有修改。。  
重起mysql服务即可完成。 

原创粉丝点击