gpt4 book ai didi

php - 用户 'root' @'localhost' 的访问被拒绝(使用密码 : YES) using ssh tunnel connection

转载 作者:行者123 更新时间:2023-11-29 02:09:11 25 4
gpt4 key购买 nike

我正在使用 phpseclib 为我的应用程序使用 php 连接到 mysql 数据库。我可以通过 SSH 使用 TCP/IP 通过工作台连接到 mysql,但我无法将我的代码连接到它。我首先创建一个 ssh 连接,然后我开始使用 mysql 连接和查询,但我有这个错误

mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES)

我发现有些人使用类似“$ssh->exec('mysql -u user -p password') 的命令来连接到 mysql,但在那之后,我该如何进行所有查询?据我了解, “exec”命令是向服务器控制台发送命令吗?

这是我的代码,希望你能帮助我:这是conexion.php

include('Net/SSH2.php');
include('remote_conexion.php');

$db_host="127.0.0.1";
$db_user="root";
$db_password=" ";
$db_name="mascotas";
$ssh = new Net_SSH2($host);
if (!$ssh->login($sftp_user, $sftp_password)) {
exit('Login Failed');
}
$connection = mysqli_connect($db_host, $db_user, $db_password, $db_name);

这是remote_conexion.php(忽略“sftp”的东西,我用它来管理文件)

include('Net/SFTP.php');
$host="***.***.**.***";
$sftp_user="user";
$sftp_password="*******";
$port="22";

$sftp = new Net_SFTP($host);
if (!$sftp->login($sftp_user, $sftp_password)) {
exit('Login Failed');
}

最佳答案

phpseclib(目前)不支持隧道。即使可以,您也无法使用 mysqli_connect - 您必须有一个纯 PHP MySQL 实现,有点像 https://github.com/amphp/mysql .

取而代之的是你能做的最好的事情(使用 phpseclib)是这样的:

echo $ssh->exec('mysql -uUSER -pPASSWORD DATABASE -e "SQL COMMAND"');

connect to the mysql database using phpseclib library讨论了如何略微改进它,但即使这样你也无法利用(例如)prepared statements。甚至 mysqli_real_escape_string .

恕我直言,最好的解决方案是使用类似 AutoSSH 的东西

关于php - 用户 'root' @'localhost' 的访问被拒绝(使用密码 : YES) using ssh tunnel connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58685618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com