Соединитесь с сервером MySQL по SSH в PHP

У меня есть своя база данных по удаленной машине Linux, и я хочу соединить использование SSH и функции PHP (я в настоящее время пользуюсь ssh2 библиотекой для этого). Я пытался использовать mysql_connect, но он дает мне, не может получить доступ (хотя я дал разрешение), когда я пытался использовать эту функцию:

$connection = ssh2_connect('SERVER IP', 22);

ssh2_auth_password($connection, 'username', 'password');

$tunnel = ssh2_tunnel($connection, 'DESTINATION IP', 3307);

$db = mysqli_connect('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD', 
                         'dbname', 3307, $tunnel)
    or die ('Fail: '.mysql_error());

Я добрался, ошибка "mysqli_connect () ожидает, что параметр 6 будет строкой, данный ресурс". Как я могу разрешить это?

21
задан halfer 17 July 2019 в 22:26
поделиться

2 ответа

Согласно документы , тот последний параметр, как предполагается, является сокетом или именем канала, чем-то как '/var/run/mysql/mysql.sock'. Так как Вы не соединяете использование сокета UNIX, который не относится к Вам... так попытка просто пропуск его.

1
ответ дан 29 November 2019 в 20:25
поделиться

даже я попробовал его путем выполнения ssh и корневыми учетными данными и и общедоступная пара с закрытым ключом, но это позволяет мне соединяться через командную строку, но не через код php. Я попробовал путем создания туннеля также (при помощи функций ssh2), ответ, выполняющий команды оболочки из кода php (система, должностное лицо и т.д.), ничто не работало. Наконец я попробовал функцию ssh2 для выполнения команды оболочки, и она наконец работала :) Вот код, если он помогает you:----

$connection = ssh2_connect($remotehost, '22');
if (ssh2_auth_password($connection, $user,$pass)) { 
    echo "Authentication Successful!\n";
} else {
    die('Authentication Failed...');
}

$stream=ssh2_exec($connection,'echo "select * from zingaya.users where id=\"1606\";" | mysql');
stream_set_blocking($stream, true);
while($line = fgets($stream)) { 
    flush();
    echo $line."\n";
}

, он работал на меня, пробуют это, если хотят использовать функции php конкретно.

0
ответ дан 29 November 2019 в 20:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: