无法通过ssh连接到mysql

时间:2017-05-30 12:41:58

标签: mysql ssh

我正在尝试连接到CentOS(v 7.3.1611)盒子上的端口3306上运行的MariaDB数据库(v 5.5.52) 出于安全原因,服务器的端口3306是防火墙(telnet mysite.com 3306次超时)

因为我可以使用已配置的连接ssh到服务器: ssh projectx

然后连接到数据库: mysql -u remote -p use staff;

我期待Sequel Pro中的这个连接让我从笔记本电脑连接到我:

enter image description here

但我收到此错误消息:

  

无法连接到主机127.0.0.1,或请求超时。   MySQL说:'读取初始通信包'时与MySQL服务器的连接丢失,系统错误:0

用户拥有以下资助: show grants for 'remote'@'%'; +----------------------------------------------------------------------------------+ | Grants for remote@% | +----------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'remote'@'%' IDENTIFIED BY PASSWORD 'redacted' | | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON `staff`.* TO 'remote'@'%' | +----------------------------------------------------------------------------------+

我在my.cnf的[mysqld]部分有这个 bind-address = *

/var/log/mariadb/mariadb.log

中未记录任何错误

1 个答案:

答案 0 :(得分:3)

如果您使用的是SSH连接,则无需定义远程用户@'%'。您也不需要绑定127.0.0.1以外的任何接口,因为您实际上是从本地计算机连接。

无论如何,bind-address应该127.0.0.在您的情况下(从localhost连接)。要让MySQL绑定到您需要的所有接口0.0.0.0(但同样,如果您使用ssh,则不需要这样做。)

还要确保将MySQL配置为使用TCP而不是本地unix套接字。尝试ssh-ing到机器并运行mysql -h 127.0.0.1 ...。如果这不起作用且mysql -h localhost有效,则服务器设置为使用unix套接字。

必须设置远程sshd守护程序,以便允许端口转发。将以下内容添加到/etc/ssh/sshd_config

AllowTcpForwarding yes