在不打开 MySQL 3306 端口的情况下,使用 Navicat 进项远程连接(使用22端口),本机可以通过3306端口连接mysql服务器,但远程不行

本文介绍在SSH和常规中设置地址、用户名和密码以连接MySQL。针对本机可通过3306端口连接但远程不行的问题,从网络、端口、防火墙、mysql配置文件和用户访问权限等方面进行检测排查,并给出相应解决办法,如开启防火墙端口、修改配置文件绑定地址、调整用户host权限等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在SSH中设置地址和CentOS的用户名和密码:为ssh登录的用户名和密码

2、在常规中设置用户名和密码,端口3306,地址一定要填写localhost: (用户名密码为数据库的用户名和密码)

点击连接测试:

 

问题:本机可以通过3306端口连接mysql服务器,但远程不行。


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只监听本机地址(绑定了到了本地),所以远程无法访问。
    对于端口只允许本机访问,有两个地方启用,一个是防火墙启用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


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改为%,表示允许所有机器访问。
 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值