我正在尝试连接到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中的这个连接让我从笔记本电脑连接到我:
但我收到此错误消息:
无法连接到主机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
中未记录任何错误答案 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