[英]unable to run SQL queries in MySQL using phpseclib
我可以成功连接到服务器并登录到MySQL数据库。 但是现在我需要在数据库表上运行一些SQL查询,但是遇到错误:ERROR 1045(28000):用户'root'@'localhost'的访问被拒绝(使用密码:是)。
我不确定SQL查询的语法是否正确? 另外,我每次需要运行SQL查询时都需要连接到服务器吗? 请提供一些建议。 谢谢。
/* SUCCESS */
$ssh = new Net_SSH2('XX.XXX.XX.XXX');
if (!$ssh->login('root', 'password')) {
exit('Login Failed');
}
echo $ssh->exec('pwd');
/* SUCCESS */
if (!$ssh->exec('mysql -h localhost -u root -pDataBaseName \r\n')){
exit('Login to MySQL Failed');
}else{
echo "Login to MySQL Success";
}
/* ERROR - facing error in this code*/
echo $ssh->exec('mysql -h localhost -u root -pDataBaseName -e "SELECT * FROM cmu_util_all"');
有趣地使用php和mysql(肯定是非常规的)。 有一种更简单的方法:在PDO上阅读: http : //php.net/manual/en/ref.pdo-mysql.php关于当前的登录问题:
-pDataBaseName
应该:
-pPassword DataBaseName
这不是问题的答案-已经给出了( -p
)。 但是,对于评论太久了,让我详细介绍一下性能问题:
每次脚本运行时,都要连接一个新的SSH隧道,这非常繁琐-从CPU角度考虑,但在所有延迟方面则最重要。
因此,我建议您尝试将-L
参数用于SSH并运行系统范围的ssh -L 127.0.0.1:3306:127.0.0.1:3306 root@...
,然后使用标准的MySQL工具(例如PDO)连接到已经在127.0.0.1
隧道传输MySQL。
注意:您必须使用127.0.0.1
,而不是localhost
,因为这将尝试使用unix套接字连接,这显然不起作用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.