为什么mysql只听ipv6的端口3306,而不是ipv4的端口3306

时间:2017-03-04 15:11:18

标签: mysql

我遇到了一个mysql问题 当我用命令

启动mysql服务时
# service mysqld start 

并且mysql服务只是侦听IPv6的端口3306,我虽然是IPv4的端口3306。

➜  ~ netstat -ntpl | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      1897/mysqld
➜  ~

my.cnf如下:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0

# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

系统:CentOS Linux发行版7.2.1511(核心版) mysql版本:x86_64上的Linux mysqld Ver 5.6.35(MySQL社区服务器(GPL))

有人会帮我一个忙,并找出如何改变它来听IPv4的3306,非常感谢。

2 个答案:

答案 0 :(得分:0)

抱歉,我认为IPv4的端口3306已打开,我从命令中看到的结果并非如此。

当我测试端口时,它可以连接。

{{1}}

答案 1 :(得分:0)

我花了几个小时终于找到了解决方法!

.cnf文件中的文件必须为bind-address = 0.0.0.0

但不是*,不是127.0.0.1,不是client_address

我不知道为什么,但是只有0.0.0.0可以找到我:

netstat -a | grep mysql

  tcp mysql

else tcp6 mysql

希望!