通过 SSH 隧道连接 MySQL

标签 mysql linux ubuntu ssh-tunnel

我尝试使用 ssh 隧道连接远程服务器以访问数据库。

总结一下情况:

1- 当我启动操作系统时, Mysql 服务正在启动。我可以访问本地数据库。 我也可以使用以下命令连接到远程服务器: ssh -i/Path_To_Key user@IP_Server 连接后,提示更改,我可以连接并浏览服务器上的数据库。 一切正常!!

2-所以我想创建一个SSH隧道从本地3306端口访问远程数据库

我正在执行以下步骤:

  • 停止Mysql服务sudo service mysql stop
  • 在端口 3306 上创建隧道 ssh -i/Path_To_Key -L 3306:127.0.0.1:3306 user@IP_Server -f -N
  • 启动Mysql服务sudo service mysql start

当我尝试启动 Mysql 时,出现错误消息:

Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details."

命令执行结果如下

systemctl status mysql.service

mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: activating (start-post) (Result: exit-code) since mer. 2018-04-25 21:50:15 CEST; 5s ago
Process: 3771 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
Process: 3764 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 3771 (code=exited, status=1/FAILURE);         : 3772 (mysql-systemd-s)
   CGroup: /system.slice/mysql.service
           control
             3772 /bin/bash /usr/share/mysql/mysql-systemd-start post
             3810 sleep 1

journalctl -xe

Subject: L'unité (unit) mysql.service a commencé à démarrer
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- L'unité (unit) mysql.service a commencé à démarrer.
avril 25 21:54:49 Aspire-A515 audit[4686]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/4686/status" pid=4686 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=121 ouid=121
avril 25 21:54:49 Aspire-A515 audit[4686]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=4686 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=121 ouid=0
avril 25 21:54:49 Aspire-A515 audit[4686]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/4686/status" pid=4686 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=121 ouid=121
avril 25 21:54:49 Aspire-A515 kernel: audit: type=1400 audit(1524686089.710:65): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/4686/status" pid=4686 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=121 ouid=121
avril 25 21:54:49 Aspire-A515 kernel: audit: type=1400 audit(1524686089.710:66): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=4686 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=121 ouid=0
avril 25 21:54:49 Aspire-A515 kernel: audit: type=1400 audit(1524686089.710:67): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/4686/status" pid=4686 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=121 ouid=121

你明白问题是什么吗?

最佳答案

您是否在运行 MySQL 的机器上启动 SSH 连接?

如果是,则说明您阻塞了端口 3306,因此 MySQL 无法再启动。

在这种情况下,您的 SSH 命令应该使用 -R 而不是 -L:

ssh -i /Path_To_Key -R 3306:127.0.0.1:3306 user@IP_Server -f -N

如果我的猜测不正确,请说明您在哪个系统上发出命令以及您希望通过 ssh 隧道从何处连接到 MySQL 数据库。

关于通过 SSH 隧道连接 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50031066/

相关文章:

php - 根据用户完成的搜索计算搜索条件记录(MYSQL PHP)

MySQL 跨服务器选择查询

c - 如何在Linux中以编程方式获取USB大容量存储大小?

linux - 当用户使用 ssh 身份作为共享用户登录时,我可以审核 Linux 系统上的用户事件吗?

ubuntu - 如何在 ubuntu 12.04 中重新安装 tomcat7

php - 如何在古吉拉特语网站的选项标签中设置升序或降序

mysql - SQL多表查询速度慢

linux - GDB:列出崩溃进程的所有映射内存区域

css - Firefox for ubuntu 呈现错误的颜色

linux - EC2 上的 80 端口 Websockets 陷入长轮询