我正在尝试连接到在 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 中没有记录错误
@'%'
如果您使用 SSH 连接,则不需要定义远程用户。您也不需要绑定除 127.0.0.1 之外的任何接口,因为您实际上是从本地机器连接。
无论如何,bind-address
应该127.0.0.
在您的情况下(用于从本地主机连接)。为了让 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句