Подключение к базе данных mysql через SSH через PHP

Я уже написал файл php, который локально подключается к базе данных mysql. Теперь я хочу подключиться к удаленной базе данных через SSH. В настоящее время функция подключения для моей базы данных в php:

$this->db = new mysqli(_SERVR_URL, _SERVR_USER , _SERVR_PASS, _SERVR_DB); if ($this->db->connect_errno) { echo "Failed to connect to MySQL: (" . $this->db->connect_errno . ") " . $this->db->connect_error; } else{ //echo "Successfully connected!! <BR><BR>"; } 

Я хочу только изменить функцию подключения (выше), чтобы остальная часть кода все еще работала. Я успешно установил phpseclib и не заинтересован в установке расширений php ssh, потому что они не работали после почти 5 часов усилий. Phpseclib работает, и я думаю, это потому, что, когда я использую, он не умирает.

Однако, когда я пытаюсь начать работу с файлом ssh, он выдает ошибку сервера:

 $ssh = new Net_SSH1(myURL); 

Способ, которым я обычно пользуюсь SSH на моем сервере, – это файл .pem. Могу ли я получить некоторые рекомендации по:

  1. Почему текущий код может вызывать ошибку?
  2. Если это возможно.
  3. Как бы вы написали код соединения с файлом .pem.

Я думаю, тебе не повезло. Вы можете либо использовать расширение ssh в своем PHP-коде, либо если у вас есть доступ к серверу, вы можете попытаться создать туннель ssh в командной строке.

Однако вам, вероятно, нужны специальные разрешения. Также похоже, что у вас нет доступа к этой учетной записи хостинга.

дубликат ответил @jpm

Настройка туннелирования, опубликованная @ Ólafur Waage о подключении к серверу MySQL через SSH в PHP

И это для туннелирования @Sosy

 shell_exec(“ssh -f -L 3307:127.0.0.1:3306 user@remote.rjmetrics.com sleep 60 >> logfile”); $db = mysqli_connect('127.0.0.1′, 'sqluser', 'sqlpassword', 'rjmadmin', 3307); 

Расширение mysql в настоящее время не поддерживает это. Модификация самого расширения может быть не такой сложной, но в этот момент в лучшем случае это должно быть обычное расширение PECL. Идея обсуждалась в списке рассылки PHP Internals некоторое время назад:

http://comments.gmane.org/gmane.comp.php.devel/79520