在Windows上,我使用Bitvise Tunnler通过SSH连接到我的服务器,然后从那里到mysqlserver:3306服务器数据库,从而使我个人电脑的本地主机上的所有通信量达到33306。
PC:33306 -> server:3306 -> databaseserver:3306
现在我正在使用linux,我发现随时随地都可以使用SSH进行SSH连接:
ssh [email protected]
但是,我不知道如何使用ssh选项复制此端口转发。 如果只是从一台电脑到另一台电脑,我想我可以做这样的事情…
ssh -L 33306:localhost:3306 [email protected]
UPDATE
我曾尝试连接使用以下的SSH和连接似乎工作。
ssh -L 33306:localhost:3306 [email protected]
但是,当试图连接到其他服务器时,phpMyAdmin会引发这个错误
#1045 - Access denied for user '[[user]]'@'localhost' (using password: YES)
然后我试了一下
ssh -L 33306:db.server.com:3306 [email protected]
和phpMyAdmin抛出这个错误
#1045 - Access denied for user '[[user]]'@'localhost' (using password: YES)
运行netstat -an | 更多的节目
tcp6 0 0 ::1:33306 :::* LISTEN
同样,stream程stream程应该如下所示:
mypc -> server -> otherdbserveronprivatelan
这应该做的:
ssh -L 33306:databaseserver:3306 [email protected]
它确实工作。 但是,在尝试连接时,我仍然使用“localhost”而不是“127.0.0.1”。
对于命令行ssh,这是
ssh -L 3333:mysqlhostname.youdomain.com:3306 [email protected]
然后,在mysql前端中打开连接到127.0.0.1端口3333.请注意,它必须是127.0.0.1,而不是本地主机,因为后者将使用UNIX域套接字。
这不是一个SSH问题,而是一个MySQL的问题。 对于MySQL,您需要确保用户已被授予对该数据库的访问权限。 这通常是通过以下方式完成的:
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'host' IDENTIFIED BY 'password';
这里要注意的主要是'host'设置。 既然你是通过SSH隧道,你需要是'username'@'localhost'才能工作。 'username'@'%'的通配符设置不适用于本地主机连接。