我尝试使用 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/