Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过SSH(php)使用mysql_Php_Mysql_Mysqli_Ssh - Fatal编程技术网

通过SSH(php)使用mysql

通过SSH(php)使用mysql,php,mysql,mysqli,ssh,Php,Mysql,Mysqli,Ssh,尝试通过ssh2和php连接到远程mysql $ssh_server=''; $ssh_port=''; $ssh_user=''; $ssh_password=''; $ssh_connection=ssh2_connect($ssh_server, $ssh_port); $ssh_auth=ssh2_auth_password($ssh_connection, $ssh_user, $ssh_password); $ssh_tunnel = ssh2_tunnel($ssh_connec

尝试通过ssh2和php连接到远程mysql

$ssh_server='';
$ssh_port='';
$ssh_user='';
$ssh_password='';

$ssh_connection=ssh2_connect($ssh_server, $ssh_port);
$ssh_auth=ssh2_auth_password($ssh_connection, $ssh_user, $ssh_password);
$ssh_tunnel = ssh2_tunnel($ssh_connection, $ssh_server, $ssh_port);

$db_hostname = 'localhost';
$db_database = '';
$db_username = '';
$db_password = '';
$db_port = '3306';

$connection_mysql = new mysqli($db_hostname, $db_username, $db_password, $db_database, $db_port);
隧道是可以的,但我看到,mysql使用我的本地mysql数据库,而不是通过SSH使用远程数据库。那么,如何通过SSH使用mysql呢


带有WAMP的操作系统windows。

使用ssh创建私钥/公钥并设置密钥身份验证(也称为无密码身份验证)

然后在php脚本中运行此代码

shell_exec("ssh -f -L 3307:localhost:3306 myuser@10.0.0.1 sleep 10 >> logfile");
然后创建数据库连接,如下所示:

$pdo = new PDO("mysql:host=$servername;dbname=$dbname;port=3307", $username, $password);

使用ssh创建私钥/公钥和设置密钥身份验证(也称为无密码身份验证)

然后在php脚本中运行此代码

shell_exec("ssh -f -L 3307:localhost:3306 myuser@10.0.0.1 sleep 10 >> logfile");
然后创建数据库连接,如下所示:

$pdo = new PDO("mysql:host=$servername;dbname=$dbname;port=3307", $username, $password);

localhost
更改为
127.0.0.1
@Fred ii-127.0.0.1它就像localhost一样。我尝试了,但我再次尝试连接到本地数据库,而不是远程数据库。我关闭了本地数据库,但它没有任何更改。以下是一些链接,您可能想查看-----将
localhost
更改为
127.0.0.1
@Fred ii-127.0.0.1它类似于localhost。我尝试了,但我再次尝试连接到本地数据库,而不是远程数据库。我关闭了我的本地数据库,但它没有任何更改。以下是一些链接,您可能需要查看-----如果您安装cygwin并将cygwin的bin文件夹附加到path变量中,它会起作用。如果您安装cygwin并将cygwin的bin文件夹附加到path变量中,它会起作用。