ホームページ > バックエンド開発 > PHPチュートリアル > shell - php模拟ssh方式登录执行mysql语句

shell - php模拟ssh方式登录执行mysql语句

WBOY
リリース: 2016-06-06 20:09:52
オリジナル
1613 人が閲覧しました

如何使用php模拟实现ssh方式登录执行mysql语句输出结果?类似于navicat的SSH连接数据库
shell - php模拟ssh方式登录执行mysql语句
shell - php模拟ssh方式登录执行mysql语句
查询php.net SSH文档先验证SSH:

<code>$conn=ssh2_connect('SSH IP',22);
ssh2_auth_password($conn,'SSH USER','SSH PASS');
</code>
ログイン後にコピー
ログイン後にコピー

然后看网上几种不知道是否正确的写法:
1.使用ssh2_tunnel

<code>$tunnel = ssh2_tunnel($conn, 'REMOTE MYSQL IP', 3307);
$mysqli=new mysqli('127.0.0.1','MYSQL USER','MYSQL PASS','MYSQL DB',3307,$tunnel);
$result=$mysqli->query($SQL);
</code>
ログイン後にコピー
ログイン後にコピー

2.使用ssh2_exec

<code>$stream=ssh2_exec($connection,'echo "select * from db.table where id=\"1\";"  | mysql');
</code>
ログイン後にコピー
ログイン後にコピー

3.使用shell_exec

<code>shell_exec("ssh -f -L 127.0.0.1:3307:127.0.0.1:3306 user@remote.rjmetrics.com sleep 60 >> logfile");  
$db = mysqli_connect('127.0.0.1', 'MYSQL USER','MYSQL PASS','MYSQL DB', 3307);
</code>
ログイン後にコピー
ログイン後にコピー

...好像还有使用ssh2_shell的,在不知道数据库服务器可以执行那些脚本的情况下怎么写这个连接?

回复内容:

如何使用php模拟实现ssh方式登录执行mysql语句输出结果?类似于navicat的SSH连接数据库
shell - php模拟ssh方式登录执行mysql语句
shell - php模拟ssh方式登录执行mysql语句
查询php.net SSH文档先验证SSH:

<code>$conn=ssh2_connect('SSH IP',22);
ssh2_auth_password($conn,'SSH USER','SSH PASS');
</code>
ログイン後にコピー
ログイン後にコピー

然后看网上几种不知道是否正确的写法:
1.使用ssh2_tunnel

<code>$tunnel = ssh2_tunnel($conn, 'REMOTE MYSQL IP', 3307);
$mysqli=new mysqli('127.0.0.1','MYSQL USER','MYSQL PASS','MYSQL DB',3307,$tunnel);
$result=$mysqli->query($SQL);
</code>
ログイン後にコピー
ログイン後にコピー

2.使用ssh2_exec

<code>$stream=ssh2_exec($connection,'echo "select * from db.table where id=\"1\";"  | mysql');
</code>
ログイン後にコピー
ログイン後にコピー

3.使用shell_exec

<code>shell_exec("ssh -f -L 127.0.0.1:3307:127.0.0.1:3306 user@remote.rjmetrics.com sleep 60 >> logfile");  
$db = mysqli_connect('127.0.0.1', 'MYSQL USER','MYSQL PASS','MYSQL DB', 3307);
</code>
ログイン後にコピー
ログイン後にコピー

...好像还有使用ssh2_shell的,在不知道数据库服务器可以执行那些脚本的情况下怎么写这个连接?

可以参看我的笔记介绍SSH2的

连接到远程shell:

<code>$connection = ssh2_connect('example.com', 22);

if (ssh2_auth_password($connection, 'root', 'password')) {
    echo "Authentication Successful!\n";
} else {
    die('Authentication Failed...');
}
</code>
ログイン後にコピー

执行命令:

<code>$stream = ssh2_exec($connection, 'mysql -uroot -p密码;use 数据库名;select * from table_name');
</code>
ログイン後にコピー

获取返回结果:

<code>stream_set_blocking($stream, true);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
echo stream_get_contents($stream_out);
</code>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート