mysqli — соединяется через обратный SSH Mysql в переполнении стека

Это мой первый пост, надеюсь, вы мне поможете.

То, что я пытаюсь сделать, это подключиться через обратный SSH к удаленному серверу компании.

COMPANY $ ssh -R 36060:localhost:22 [email protected]

Тогда в местном

LOCAL $ ssh company@localhost -p 36060
LOCAL $ mysql -h 127.0.0.1 -u root -p root

Все хорошо, соединение работает в терминале, я вижу таблицы, никаких проблем.

После всего этого в php архиве.

<?php
$cnn = mysqli_connect('127.0.0.1','root','root','user_database',33060);
?>

Но всегда присылайте мне ошибки, когда я пытаюсь открыть в браузере.

Warning: Packets out of order. Expected 0 received 45. Packet size=4739923 in /opt/lampp/htdocs/test.php on line 2
Warning: mysqli_connect(): MySQL server has gone away in /opt/lampp/htdocs/test.php on line 2

Я пытаюсь изменить конфиг в «тестовом сервере», изменить в LOCAL и COMPANY max_allowed_packet = 128M в my.cf, но ничего не работает.

Если у вас есть идеи, пожалуйста, помогите 🙁

РЕДАКТИРОВАТЬ: проблема решена!

SERVER $ ssh -fNT -R 33060: localhost: 3306 [email protected]

LOCAL $ mysql -h 127.0.0.1 -P 33060 -u root -p

И работает отлично: D

1

Решение

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

shell_exec("ssh -f -L 3307:localhost:3306 myuser@myhost sleep 10 >> logfile");
$DB = new PDO("mysql:host=$servername_local;dbname=$dbname_local;port=3307", $username_local, $password_local);
$DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]