通过SSH隧道访问远程mysql服务器

我无法访问远程mysql服务器(设置为跳过networking/没有远程连接)。 我已经能够成功地创build一个SSH隧道,但我怎样才能通过该隧道访问服务器的MySQL套接字?

你需要有一种IP方法来远程访问这个mysql服务器,只使用套接字就可以让你从本地机器访问这个mysql服务器。

在这里你最好的select是激活networking,但是防火墙只能从本地主机访问,那么一旦你的隧道工作,应该是相当直接通过SSH隧道远程连接,无论是直接从命令行ssh -L 3306:localhost:3306 user@server或使用.ssh / config LocalForward 3306 localhost:3306

如果mysql服务器configuration为不允许networking连接,那么它只会与通过文件套接字连接的程序进行通信。 您已经创build了一个以networking套接字结束的pipe道 – 您需要创build一个侦听networking端口并连接到文件套接字的网桥。

我相信有可能这样做与netcat – 像…..

 nc -U -l 3306 /var/lib/mysql/mysql.sock 

…但做RTFM和实验。

@Lynxman,当mysql使用–skip-network选项运行时,不能使用TCP进行连接,因为它不在3306端口上侦听,只能使用套接字进行连接。

http://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_skip-networking

symcbean @

Netcat不会做伎俩。 从手册,这是我发现的。

在Unix域套接字上创build并侦听:
$ nc -lU / var / tmp / dsocket