尝试连接到数据库的PHP文件是否必须与数据库位于同一服务器上?

尝试连接到数据库的PHP文件是否必须与数据库位于同一服务器上?,php,Php,例如,当尝试连接到下面这样的服务器xy.xy.xyz.xyz时,脚本是否必须存在于该服务器上才能工作 <?php $servername = "xy.xy.xyz.xyz"; $username = "username"; $password = "password"; // Create connection $conn = new mysqli($servername, $username, $password); // Check connection if ($conn->

例如,当尝试连接到下面这样的服务器
xy.xy.xyz.xyz
时,脚本是否必须存在于该服务器上才能工作

<?php
$servername = "xy.xy.xyz.xyz";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";
?>

不,没有。但是,必须将DB服务器配置为允许远程连接


您可以查看MySQL的更多详细信息。

不,没有。但是,必须将DB服务器配置为允许远程连接


您可以查看MySQL的更多详细信息。

不,最可能发生的情况是,如果用户试图从外部IP地址访问MySQL数据库,则您的MySQL数据库不允许用户登录

通过MySQL运行以下命令

SELECT * 
FROM information_schema.user_privileges
WHERE GRANTEE LIKE '%username%';
username
值更改为实际用户名值。如果您看到一组行中的被授权人列是
'username'@'localhost'
,并且没有任何类似于
'username'@%
,则您的用户仅限于本地主机(同一台机器)访问

如果要授予用户非本地访问权限,可以使用以下选项:

GRANT ALL PRIVILEGES
ON mydatabasename.*
TO 'username'@'%'
IDENTIFIED BY 'mypassword'

在上面的例子中,
%
意味着我的用户可以从任何地方连接。此示例将所有管理员权限授予用户,但如果愿意,您可以更改此权限。

不,最可能发生的情况是,如果用户试图从外部IP地址访问MySQL数据库,则MySQL数据库不允许用户登录

通过MySQL运行以下命令

SELECT * 
FROM information_schema.user_privileges
WHERE GRANTEE LIKE '%username%';
username
值更改为实际用户名值。如果您看到一组行中的被授权人列是
'username'@'localhost'
,并且没有任何类似于
'username'@%
,则您的用户仅限于本地主机(同一台机器)访问

如果要授予用户非本地访问权限,可以使用以下选项:

GRANT ALL PRIVILEGES
ON mydatabasename.*
TO 'username'@'%'
IDENTIFIED BY 'mypassword'

在上面的例子中,
%
意味着我的用户可以从任何地方连接。此示例将所有管理员权限授予用户,但如果愿意,您可以更改此权限。

简短回答:否。长篇回答:在不了解您所在网络的任何详细信息或DB服务器的服务器设置的情况下,几乎无法告诉您连接失败的原因。简短回答,否。您必须确保数据库服务器上的数据库端口已打开,并且在MySQL中设置了适当的权限,以便从远程主机建立会话。否,这就是为什么您有
$servername=“xy.xy.xyz.xyz”
Short-response:否。Long-response:在不知道您所在网络的任何详细信息或数据库服务器的服务器设置的情况下,几乎无法告诉您连接失败的原因。Short-response,no。您必须确保数据库服务器上的数据库端口已打开,MySQL中设置了适当的权限,用于从远程主机建立会话。不,这就是为什么您在两侧都有
$servername=“xy.xy.xyz.xyz”
加上防火墙在两侧都有防火墙