› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
MrMike
V2EX  ›  MySQL

mysql 不能远程连接,还有其他什么需要设置么?

  •  
  •   MrMike · Jan 2, 2018 · 4792 views
    This topic created in 3231 days ago, the information mentioned may be changed or developed.
    环境是 centos 7, mysql 5.6
    已经设置了的:
    1, my.cnf 中 bing-address: 0.0.0.0
    2, grant all privileges on *.* to 'user'@'%' identified by 'password' with grant option; flush privileges;
    3, 3306 端口已经开放了的。
    已经重启 mysql 和服务器很多遍,但是依旧还是不能远程访问,请问还有什么可能性造成的呢?
    Supplement 1  ·  Jan 2, 2018
    1,已经禁用了 selinux
    2,netstat -ntlp:
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1893/httpd
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1431/sshd
    tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2435/mysqld
    21 replies  •  2018-01-02 09:33:10 +08:00
    zjp
    zjp
    Jan 2, 2018 via Android
    1
    服务器上执行 `netstat -ntlp` 检查 MySQL 有没有监听 0.0.0.0:3306
    自己电脑上执行 `telnet $IP 3306`检查能不能连上端口
    另外就是看 MySQL 日志了
    zjp
    zjp
    Jan 2, 2018 via Android
    2
    @zjp 看了楼主记录,MySQL 应该是监听端口了。连不上还有可能是 iptables 或者服务商的安全组的原因。CentOS 应该没有默认安装 ufw …
    shiji
    shiji
    Jan 2, 2018 via Android
    3
    楼上言之有理。另外如果是 vps 的话,某些云服务商还在控制台里有安全组,相当于另外一层防火墙
    WordTian
    WordTian
    Jan 2, 2018 via Android
    4
    防火墙 selinux
    patx
    patx
    Jan 2, 2018
    5
    关闭防火墙,禁用 selinux
    MrMike
    MrMike
    OP
    Jan 2, 2018
    6
    @patx
    @WordTian selinux 已经是禁用了的。
    MrMike
    MrMike
    OP
    Jan 2, 2018
    7
    @zjp

    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1893/httpd
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1431/sshd
    tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2435/mysqld

    有监听的。
    MrMike
    MrMike
    OP
    Jan 2, 2018
    8
    @zjp 服务器是阿里云的,这个没考虑到,稍后可以联系阿里云试试。
    squid157
    squid157
    Jan 2, 2018 via iPhone
    9
    看服务商是不是有额外的安全组设置,aws 阿里云 都是默认有的
    defunct9
    defunct9
    Jan 2, 2018 via iPhone
    10
    开 ssh 上去看看
    rogwan
    rogwan
    Jan 2, 2018 via Android
    11
    如果安全组没有放行,肯定是访问不了的
    vimutt
    vimutt
    Jan 2, 2018 via iPhone
    12
    bing-address 这个是 bind-address,你是笔误还是填错了
    yingfengi
    yingfengi
    Jan 2, 2018 via Android
    13
    检查服务器上的防火墙和前端防火墙
    opengps
    opengps
    Jan 2, 2018
    14
    综合 2 楼+3 楼,1,防火墙,2,安全组
    重点看看你的服务器是否安全组设置,如果是阿里云等云服务器用户,往往是不懂安全组导致的,可以近似的把安全组理解成硬件防火墙那样,不能从服务器内部去设置改变,从而安全
    AsisA
    AsisA
    Jan 2, 2018 via Android
    15
    同楼上,可能被阿里云给拦截了,去阿里云控制台里看一下指定 ECS 的 3306 有没有开
    rainmakeroly
    rainmakeroly
    Jan 2, 2018 via Android
    16
    登录阿里云后台后,安全组 添加策略,将 3306 添加进去就行了
    hardman
    hardman
    Jan 2, 2018
    17
    防火墙,安全组
    MrVito
    MrVito
    Jan 2, 2018 via Android
    18
    用 xshell 或者类似的软件打隧道可以解决
    hzwjz
    hzwjz
    Jan 2, 2018 via Android
    19
    TCP through ssh 进行连接,可行?
    spkinger
    spkinger
    Jan 2, 2018
    20
    很多 mysql 连接软件都支持先 ssh 隧道再 mysql 连接,
    linux 也可以将远端 3306 端口隧道到本地(此处映射到本地 3333 端口,mysql 可以直接连接 127.0.0.1:3333 )
    ssh -4 -fCNL 3333:127.0.0.1:3306 ssh 用户名 @主机 IP -o TCPKeepAlive=yes -o ServerAliveInterval=60 -o ServerAliveCountMax=3
    MrMike
    MrMike
    OP
    Jan 2, 2018
    21
    @rainmakeroly
    @MrVito
    @hzwjz
    @spkinger
    @opengps
    @rogwan 谢谢各位朋友的回复,刚才已经设置好了,服务器是阿里云的专用网络,默认 3306 没有开启的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1719 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 12:31 · PVG 20:31 · LAX 04:31 · JFK 07:31
    ♥ Do have faith in what you're doing.