电脑计算机论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 638|回复: 0

mysql服务器3306端口不能远程连接的解决

[复制链接]
admin 发表于 2022-7-23 11:56:58 | 显示全部楼层 |阅读模式
1、网络检测
   1)ping主机可以;
   2)telnet 主机3306端口不可以;
     telnet 主机22端口可以;
   说明与本机网络没有关系;


2、端口检测
   1)netstat -ntpl |grep 3306
    tcp        0      0 :::3306                     :::*                        LISTEN      -
   2)netstat -ntpl |grep 22
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -   
   可以看出22端口监听所有地址,而3306只监听本机地址(绑定了到了本地),所以远程无法访问。修改my.cnf 中bind-address=0.0.0.0
   对于端口只允许本机访问,有两个地方启用,一个是防火墙启用3306,一个就是mysql配置绑定本机地址。


3、防火墙检测
   1)iptables --list查看;
   2)开启防火墙3306端口
     vi /etc/sysconfig/iptables
     -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)
     /etc/init.d/iptables restart(重启防火墙使配置生效)
   3)或者直接关闭防火墙;   参考:http://blog.csdn.net/fjssharpsword/article/details/50973283
   centos 7 以后是修改 firewall
  systemctl start firewalld # 启动,
  systemctl enable firewalld # 开机启动
  systemctl stop firewalld # 关闭
  systemctl disable firewalld # 取消开机启动



4、mysql配置文件检查
   检查my.cnf的配置,bind-address=addr可以配置绑定ip地址。
   不配置或者IP配置为0.0.0.0,表示监听所有客户端连接。
   #ps -aux | grep mysql  查看进程ID是3340
   #ll /proc/3340 查看进程程序情况,找配置文件
   或者#which mysql 找程序路径


5、mysql用户访问权限
   进入mysql数据库
   $mysql -u root -p
   >use mysql;
   >select host,user from user;
    MySQL建用户的时候会指定一个host,默认是127.0.0.1/localhost只能本机访问;
    其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问:
  mysql>use mysql;
    mysql>update user set host='%' where user='root';
    mysql>flush privileges;
您需要登录后才可以回帖 登录 | 注册

本版积分规则


QQ|手机版|小黑屋|电脑计算机论坛 ( 京ICP备2022023538号-1 )

GMT+8, 2024-12-29 16:25 , Processed in 0.130624 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表