我可以成功连接到服务器并登录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"');
答案 0 :(得分:0)
有趣的使用php和mysql(当然非常规)。有一种更简单的方法:阅读PDO:http://php.net/manual/en/ref.pdo-mysql.php 关于您当前的登录问题:
delete(previous)
previous := current
current := new()
应该是:
-pDataBaseName
答案 1 :(得分:0)
这不是问题的答案 - 已经给出了(-p
)。但是,如果评论太长,请让我详细说明性能问题:
每次脚本运行时都会连接一个新的SSH隧道,这是相当重的 - CPU级别,但最重要的是延迟。
因此,我建议您尝试使用-L
参数进行SSH并运行系统范围的ssh -L 127.0.0.1:3306:127.0.0.1:3306 root@...
,然后使用标准MySQL工具(例如PDO)连接到{{1}处已经隧道化的MySQL }。
请注意:您必须使用127.0.0.1
,而不是127.0.0.1
,因为这会尝试使用unix套接字连接,这显然无法正常工作