Zend_Db:如何通过SSH隧道连接到MySQL数据库?

6

如何使用PHP和Zend Framework连接需要SSH隧道的MySQL数据库?

2个回答

10

只需启动SSH隧道并将本地端口用作MySQL端口即可。

例如,您可以像这样启动隧道:

ssh -f user@mysql-server.com -L 3306:mysql-server.com:3306 -N

你可以像这样连接到MySQL:

$conn = mysql_connect('localhost', 'mysql_user', 'mysql_password');

对于zend_db,您需要这样做:

$config = new Zend_Config(
    array(
        'database' => array(
            'adapter' => 'Mysqli',
            'params'  => array(
                'host'     => 'localhost',
                'dbname'   => 'my_db',
                'username' => 'mysql_user',
                'password' => 'mysql_password',
            )
        )
    )
);

$db = Zend_Db::factory($config->database);

我收到了一个“连接被拒绝”的消息。它还说它正在连接22号端口,这是没有意义的,因为我已经指定了两个端口...你知道为什么这对我不起作用吗? - Andrew
错误意味着服务器上没有运行SSH,与MySQL无关。 - ZZ Coder
啊,原来是我通过ssh连接的方式有问题。 - Andrew

0
有没有办法在apache2配置或通过Zend设置它以创建持久连接,以便在需要时从服务器连接并保持打开一段时间,以防后续调用进来?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接