【发布时间】:2015-08-25 18:53:36
【问题描述】:
我正在尝试访问只能在本地 (localhost) 访问的远程 MySQL 数据库。
我的代码如下所示:
$connection = ssh2_connect('IP to Server', 22);
if (ssh2_auth_password($connection, 'User', 'Password')) {
echo "Authentication Successful!\n";
} else {
die('Authentication Failed...');
}
$tunnel = ssh2_tunnel($connection, '127.0.0.1', 3306);
try {
$this->_connection = new PDO($dsn, $config['login'], $config['password'], $flags);
$this->connected = true;
if (! empty($config['settings'])) {
foreach ($config['settings'] as $key => $value) {
$this->_execute("SET $key=$value");
}
}
} catch (PDOException $e) {
throw new MissingConnectionException(array(
'class' => get_class($this),
'message' => $e->getMessage()
));
}
脚本成功到$tunnel。 PDO 连接失败并显示“连接被拒绝”。我认为 PDO 正在尝试连接到 MAMP? $dsn 变量看起来像“mysql:host=127.0.0.1;port=3306;dbname=mydb”。
如何告诉 MAMP,127.0.0.1 位于通过 SSH 连接的远程服务器上?
谢谢!
【问题讨论】: