使用phpseclib通过SSH连接到MySQL的PHP代码
我想连接到服务器上的MySQL,但服务器只能通过SSH访问。 我使用phpseclib与SSH连接。这是成功的。 但当尝试连接到MySQL时,它说:访问被拒绝。 所以,我有这些代码。任何人都请帮帮我使用phpseclib通过SSH连接到MySQL的PHP代码,php,mysql,windows,ssh,phpseclib,Php,Mysql,Windows,Ssh,Phpseclib,我想连接到服务器上的MySQL,但服务器只能通过SSH访问。 我使用phpseclib与SSH连接。这是成功的。 但当尝试连接到MySQL时,它说:访问被拒绝。 所以,我有这些代码。任何人都请帮帮我 <?php //data for connection to SSH //host : 10.81.229.31 //user : root //pass : abcde //here's data for connection to MySQL //host = 10.81.229.31
<?php
//data for connection to SSH
//host : 10.81.229.31
//user : root
//pass : abcde
//here's data for connection to MySQL
//host = 10.81.229.31
//username = root
//password = abcde
//database name = testing
include('Net/SSH2.php');
//connecting to server with SSH
$ssh = new Net_SSH2('10.81.229.31');
if (!$ssh->login('root', 'abcde')) {
exit('Login Failed');
}else{
echo "Login Success";
}
//connecting to MySQL
echo $ssh->exec('mysql -h 10.81.229.31 -u root -p testing');
?>
当您在框中使用ssh时,您应该将数据库引用为localhost
echo $ssh->exec('mysql -h localhost -u root -ptesting');
不用空格就试试看。例如
echo $ssh->exec('mysql -h localhost -u root -ptesting');
引用《曼恩mysql》的话:
--密码[=密码],-p[密码]
非常感谢所有已经帮助过我的人。尝试使用ssh登录服务器,然后尝试连接到mysql,看看是否有效。mysql的完整错误代码是什么?另外,如果这是一个远程数据库,MySQL必须具有远程访问权限。@PanamaJack:没有错误,但它仍然会加载很长时间。但仍然没有结果。删除此代码时:echo$ssh->exec('mysql-h10.81.229.31-u root-p testing');它将显示消息:登录成功。如何知道服务器上的MySQL有远程访问权限?我试过使用PUTTY,它成功了…你在PUTTY中使用了完全相同的命令吗?@MarcelBalzer:我使用这个命令'mysql-h localhost-u root-p testing',但当我使用它时,php代码不起作用…命令'mysql-h localhost-u root-p testing'它在PUTTY中起作用,但为什么它在php代码中不起作用。。我很困惑^ ^你也可以尝试不包括-h参数仍然不起作用。。请问,您知道如何使用代码$ssh->write()?你能给我举个例子吗。。在此之前感谢您,您必须在命令之后\n将其与$ssh->write()
一起使用。但这不是唯一的问题。看到我的答案了。非常感谢。。。是的。。成功登录mySQL我将发布正确的代码。如果您正在执行$ssh->write
;),则只需要\r\n否则,看起来不错!
<?php
//data for connection to SSH
//host : 10.81.229.31
//user : root
//pass : abcde
//here's data for connection to MySQL
//host = 10.81.229.31
//username = root
//password = abcde
//database name = testing
include('Net/SSH2.php');
//connecting to server with SSH
$ssh = new Net_SSH2('10.81.229.31');
if (!$ssh->login('root', 'abcde')) {
exit('Login to Server Failed');
}else{
echo "Login to Server Success";
}
//connecting to MySQL
if (!$ssh->exec('mysql -u root -ptesting \r\n')){
exit('Login to MySQL Failed');
}else{
echo "Login to MySQL Success";
}
?>
Login to Server SuccessLogin to MySQL Success