Zend Framework 1 - 通过ssh隧道进行远程数据库连接

时间:2017-03-23 14:26:16

标签: php mysql zend-framework ssh ssh-tunnel

我想连接到我的客户远程数据库。

我能够使用命令建立ssh隧道:

ssh -vvv -i path_to_private_key -L 3308:127.0.0.1:3307 ssh_user@ssh_host

并使用以下命令连接到他的数据库:

mysql -u database_user -p -h 127.0.0.1 -P 3308

但是当我想配置我的zend框架项目来从这个数据库中读取数据时,没有任何事情发生(即使apache2错误日志中没有日志)

在application.ini文件的配置下面:

resources.db.adapter = "mysqli"
resources.db.params.host = 127.0.0.1
resources.db.params.port = 3308

resources.db.params.dbname = database_name
resources.db.params.username = database_user
resources.db.params.password = database_password
resources.db.params.profiler = false

我不知道出了什么问题。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

尝试稍微修改一下ssh命令。

ssh -N -L -i path_to_private_key 3307:mysqlhost:3306 ssh-user@ssh-host

其中3307是您的本地端口,mysqlhost是您要连接的mysql主机,而不是localhost。现在,您的配置应如下所示:

resources.db.adapter = "mysqli"
resources.db.params.host = 127.0.0.1
resources.db.params.port = 3307

resources.db.params.dbname = database_name
resources.db.params.username = database_user
resources.db.params.password = database_password

供手册参考:

-N      Do not execute a remote command.  This is useful for just forwarding ports (pro-
         tocol version 2 only).

希望有所帮助。

答案 1 :(得分:0)

不幸的是,这不是我的问题的解决方案。最后几天发现我的客户方面存在问题,我的命令一切都很好。