如何用PHP将MySQL/MariaDB数据库连接到Linux云服务器

你可以通过云服务器轻松连接 MySQL Linux 或 MariaDB Linux,灵活运行应用程序。只要拥有合适的访问权限和配置,成功连接MySQL Linux就变得快捷且简单。

要求

运行Linux(任何发行版)的云服务器。

安装并激活了LAMP协议栈(Apache、MySQL/MariaDB和PHP)。

如果你使用防火墙,必须允许访问MySQL/MariaDB服务器上的端口3306。

如何连接MySQL Linux

数据库通常连接到Linux云服务器,以灵活且大规模地运行应用程序。这种设置允许多个服务或网络应用访问相同的数据,而无需单独的本地安装。云服务器还简化了数据库管理、备份和安全更新。在本教程中,我们将向您展示如何在Linux服务器上搭建MySQL或MariaDB数据库,并用PHP脚本连接。

步骤1:创建样本数据库

在本教程中,我们将使用测试数据库。要创建一个,首先登录:

mysql -u root -p

用以下命令创建测试数据库:

CREATE DATABASE phptest;

现在切换到测试数据库:

USE phptest;

在这里创建一个简单的示例表。在我们的例子中,我们选择一个存放员工的表格:

CREATE TABLE employees (id INT, name VARCHAR(40));

现在再加两名员工:

INSERT INTO employees VALUES (1, "Alice");

INSERT INTO employees VALUES (2, "Bob");

为了验证记录是否正确创建,您可以使用以下SQL查询:

SELECT * FROM employees;

输出应该是这样的:

+------+-------+

| id | name |

+------+-------+

| 1 | Alice |

| 2 | Bob |

+------+-------+

2 rows in set (0,002 sec)

步骤2:创建MySQL/MariaDB用户

为了在保护数据库免受未授权连接的同时启用认证访问,现在你需要创建一个 MySQL/MariaDB 用户。为此,请再次使用MySQL/MariaDB客户端登录数据库服务器:

mysql -u root -p

以下命令创建用户并授予他们我们第一步创建数据库的权限:

CREATE USER [Username]@[Location] IDENTIFIED BY [Password];

GRANT ALL PRIVILEGES ON [DatabaseName].* TO [Username]@[Location];

FLUSH PRIVILEGES;

替换上述命令中的占位符:

DatabaseName\]用你们数据库的名字。 \[Username\]用你想为数据库创建的用户名。 \[Location\]其中 PHP 脚本的位置。如果 PHP 脚本和 MySQL 数据库在同一台服务器上,请使用 。否则,使用 PHP 脚本所在服务器的 IP 地址。localhost \[Password\]为用户设置安全密码。 例如,要创建一个名为phpuser的用户,密码为Ig86N3tUa9,他位于与MySQL数据库同一服务器上,并且可以访问phptest数据库,命令应为: CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'Ig86N3tUa9'; GRANT ALL PRIVILEGES ON phptest.\* TO 'phpuser'@'localhost'; FLUSH PRIVILEGES; 要创建第二个名为phpuser2的用户,该用户从拥有该IP地址的服务器连接,请使用以下命令:192.168.0.1 CREATE USER 'phpuser2'@'192.168.0.1' IDENTIFIED BY 'Rq53yur62I'; GRANT ALL PRIVILEGES ON phptest.\* TO 'phpuser2'@'192.168.0.1'; FLUSH PRIVILEGES; ###### **步骤3:创建PHP脚本** 为了验证你的PHP应用能否连接到Linux服务器上的数据库,你可以创建一个小型测试脚本。该脚本连接测试数据库,从表中获取数据,并在浏览器中显示。这可以让你确认用户、密码和主机配置正确,数据库是否可访问。 首先,创建测试脚本: sudo nano /var/www/html/phpconnect.php 接下来,将以下内容插入文件中: \ \ \Test PHP Connection Script\ \ \ \Welcome to the PHP Connect Test\ \"; } mysqli_close($connect); ?\> \ \ HTML 用对应的数据替换 、 、 和。 例如,如果你想测试脚本与数据库在同一服务器上的本地连接,可以使用:UsernamePasswordLocationHostname $dbuser = 'phpuser'; $dbpass = 'Ig86N3tUa9'; $dbhost = 'localhost'; 为了验证与脚本的远程连接,当脚本位于与数据库不同的服务器时,给变量赋予以下数值: $dbuser = 'phpuser2'; $dbpass = 'Rq53yur62I'; $dbhost = '192.168.0.2'; ###### **如何排查远程MySQL/MariaDB连接的问题** 如果你的PHP应用或其他脚本无法连接到MySQL Linux,或者无法从另一台服务器连接到MariaDB Linux,可能会导致各种问题。以下解决方案可能有助于解决问题: ###### **解决方案1:检查用户和权限** 如果你在尝试连接MySQL Linux或连接另一台服务器的MariaDB Linux时遇到问题,首先检查以下几点: 你用的是正确的MySQL/MariaDB用户名和密码吗? 这个用户设置的位置是正确的吗? 默认情况下,MySQL/MariaDB 允许用户仅从创建时指定的主机登录。例如,如果你的用户是这样创建的: CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'Ig86N3tUa9'; GRANT ALL PRIVILEGES ON phptest.\* TO 'phpuser'@'localhost'; FLUSH PRIVILEGES; 那么登录只能在数据库运行的同一服务器上工作()。在不同服务器上的脚本必须为远程IP地址或(所有主机)设置用户。localhost% ###### **解决方案2:命令行连接测试** 在检查PHP脚本之前,你应该直接通过MySQL CLI测试连接。在脚本运行的服务器上,使用: mysql -u \[username\] -h \[host server IP address\] -p 例如,使用用户名 phpuser2 连接到位于 192.168.0.2 的数据库,命令为: mysql -u phpuser2 -h 192.168.0.2 -p 如果连接正常,这个命令会让你登录到远程服务器上的 MySQL/MariaDB 客户端。 ###### **解决方案三:防火墙** 确保所有相关的防火墙规则都已更新,允许数据库服务器的3306端口使用TCP/UDP流量。请记住,所有云服务器都受Cloud Panel默认防火墙策略的约束。

相关推荐
Code blocks40 分钟前
SpringBoot从0-1集成KingBase数据库
数据库
程序员敲代码吗1 小时前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
未来的旋律~2 小时前
sqlilabs注入靶场搭建与sql语句
数据库·sql
一个天蝎座 白勺 程序猿2 小时前
KingbaseES查询逻辑优化深度解析:从子查询到语义优化的全链路实践
开发语言·数据库·kingbasees·金仓数据库
佑白雪乐2 小时前
<Linux基础第10集>复习前面内容
linux·运维·服务器
春日见2 小时前
自动驾驶规划控制决策知识点扫盲
linux·运维·服务器·人工智能·机器学习·自动驾驶
我真的是大笨蛋2 小时前
InnoDB行级锁解析
java·数据库·sql·mysql·性能优化·数据库开发
山茶花.3 小时前
SQL注入总结
数据库·sql·oracle
m0_736919103 小时前
超越Python:下一步该学什么编程语言?
jvm·数据库·python
landonVM4 小时前
Linux 上搭建 Web 服务器
linux·服务器·前端