无法通过 ssh 连接到 mysql

珍妮·特尼森

我正在尝试连接到在 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章