使用PHP远程访问MySQL数据库

使用PHP远程访问MySQL数据库,php,mysql,remote-access,Php,Mysql,Remote Access,我正在尝试远程访问数据库。我可以从服务器本身访问它,但我需要远程访问它,并且在我的计算机上使用XAMPP进行访问 我添加了数据库用户从我的ip访问数据库的可能性(也尝试使用%)。代码如下: $servername = $websiteIP; //e.g. xx.xx.xxx.xxx, also tried website URL and URL to phpMyAdmin $username = 'username'; $password = 'password'; $dbname = 'd

我正在尝试远程访问数据库。我可以从服务器本身访问它,但我需要远程访问它,并且在我的计算机上使用XAMPP进行访问

我添加了数据库用户从我的ip访问数据库的可能性(也尝试使用%)。代码如下:

$servername = $websiteIP; //e.g. xx.xx.xxx.xxx, also tried website URL and URL to phpMyAdmin 
$username = 'username';
$password = 'password'; 
$dbname = 'dbname';
$port = '3306';
$conn = new mysqli($servername, $username, $password, $dbname);
// also tried $conn = new mysqli($servername, $username, $password, $dbname, $port);
但我总是犯这样的错误:

警告:mysqli::mysqli():(HY000/2002):连接尝试失败,因为连接方在一段时间后没有正确响应,或者因为连接的主机没有响应而建立的连接失败。在

除非我使用$servername=$urlToMyPhpAdmin; 然后我得到这个错误:

警告:mysqli::mysqli():MySQL服务器已在第10行的xxx中消失。警告:mysqli::mysqli():读取问候语包时出错。第10行xxx中的PID=102448。警告:mysqli::mysqli():(HY000/2006):MySQL服务器已在第10行的xxx中消失


我缺少什么?

数据库是否与网站位于同一服务器上?您可能需要数据库主机的IP或地址,而不是网站(或PHPMyAdmin)。我将进入PHPMyAdmin并运行以下查询,这些查询取自答案:

从全局变量中选择*,其中变量名称如“hostname”


并尝试将该结果用作
$servername

您是否检查了入站端口?通过禁用DB服务器的防火墙(iptable/Selinux)检查一次。@webDev抱歉,我不太确定入站端口是什么。我很确定我没有禁用防火墙的权限。当我使用你的SQL时,我会遇到一个错误,但这是有效的:显示变量,其中变量_name='hostname'是相同的吗?结果是一个文本字符串($string)。然后我使用以下代码:echo gethostbyname($string),这会产生一个与网站IP相同的IP。好吧,很酷,所以您肯定想将该IP用作
$servername
。我会查看一下网站,确保您设置的用户具有正确的远程连接权限,或者尝试在本地运行mysql连接到远程数据库,以确保它可以接受远程连接看起来您让我走上了正确的轨道。如果我将IP用作$servername(而不是localhost)并从远程服务器进行本地连接,那么一切都可以正常工作。但是当我将相同的代码移动到我的XAMPP服务器时,我得到了错误。所以我想,即使远程服务器的控制面板允许我为每个用户将主机从本地主机更改为ip,我仍然无法访问。