AWS LightSail Wordpress-使用mysqli连接到实例上的数据库

时间:2021-04-18 作者:ZeroStrikeCall

我在AWS Lightsail上有一个wordpress网站。在那个网站上,我想使用一个短代码来使用mysqli从数据库中检索数据。但是,每次执行连接到数据库的脚本时,我都会收到一个连接错误。数据库位于同一AWS Lightsail实例上。我想知道是否需要建立SSH隧道,因为如果连接到phpmyadmin,也需要建立SSH隧道。但是,由于脚本是在服务器本身上执行的,因此在我的理解中,这并没有真正意义。我在本地主机上使用了完全相同的代码,它工作得非常好。我错过了什么?

//Params to connect to a database
$dbHost = "*static ip of wordpress site*";
$dbUser = "root";
$dbPassword = "*password*";
$dbName = "*database name*";


mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
  $db = new mysqli($dbHost, $dbUser, $dbPassword, $dbName);
  $db->set_charset("utf8mb4");
} catch(Exception $e) {
  error_log($e->getMessage());
  exit(\'Error connecting to database\'); 
}

1 个回复
最合适的回答,由SO网友:Rup 整理而成

//Params to connect to a database
$dbHost = "*static ip of wordpress site*";
这应该是$dbHost = "localhost"; 相反,或"127.0.0.1" (甚至"::1").

localhost使用一个单独的虚拟网络接口,确保Linux VM上的服务之间的通信不会离开VM。通常,使用localhost比使用属于主机接口的其他IP更安全,因为

您可以避免主机上可能配置的防火墙出现任何问题,在AWS环境中也可以避免任何安全组/专有网络过滤器,例如,如果您使用面向公共的IP作为主机,而不是虚拟私有云上不同的内部IP地址,则mysql登录可以通过允许连接的主机进行过滤,如果您的根用户可能被限制在数据库级别的本地主机登录

相关推荐

在带有WordPress子主题函数的插件css之后添加自定义css文件。php

我正在尝试为我的孩子主题创建一个css文件functions.php 在一个带有句柄的特定插件css文件之后openpos.bill.bootstrap. 不幸的是,当前代码没有加载任何内容。Any idea how to solve this problem?插件使用以下代码块加载样式public function initScripts(){ global $op_in_pos_screen; global $op_in_bill_screen; glo