微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 PHP 和 SSH 与外部数据库交互

如何解决使用 PHP 和 SSH 与外部数据库交互

我被困在需要寻求帮助的地方,因为这是我第一次使用 PHP 处理外部数据库。运行 PHP 脚本时出现以下错误

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

我试图执行的 PHP 脚本:

 shell_exec("ssh -f -L 3307:127.0.0.1:3306 root@mydomain.com sleep 60 >> logfile");
    $MysqLi = new MysqLi($servername,$username,$password,$dbname);
     $sql = $MysqLi->prepare("INSERT INTO users (name,email,password,first_name,last_name,cell_no) VALUES (?,?,?)");
     $sql->bind_param("ssssss",$loginUsername,$emailAddress,$sitePass,$firstName,$lastName,"cellNr");
     $sql->execute();

如有任何帮助,我们将不胜感激。

解决方法

检查您的 my.cnf 或 my.ini 文件,看看您是否设置了“绑定地址”参数。如果是,将其注释掉并重新启动 mySQL。

请注意,您的错误发生在第 2 行。您的代码的第 3-5 行甚至没有被执行。要么您输入了错误的密码、错误的用户名,要么您的 mySQL 服务器不允许远程连接。

可能重复:

MySQL: How to allow remote connection to mysql

虽然我有点困惑,当您似乎在访问 127.0.0.1 时,为什么在这里使用 shell_exec。如果您的 MySQL 实例与您的 php 解释器在同一台服务器上,那么您绝对不需要该行。只需将 $servername 设置为“localhost”或“127.0.0.1”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。