如何用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默认防火墙策略的约束。

相关推荐
一条破秋裤44 分钟前
数据中心能耗预测
服务器
麦聪聊数据1 小时前
生成测试数据(三):从建表到 CRUD 的冷启动
数据库·sql
知识分享小能手1 小时前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04 中的服务器 —— 知识点详解 (22)
服务器·学习·ubuntu
Awkwardx1 小时前
MySQL数据库—MySQL复合查询
数据库·mysql
2301_800256111 小时前
R-Tree创建与遍历,R-Tree在4类空间查询中的应用,实现4类空间查询的各类算法[第8章]
数据库·算法·机器学习·postgresql·r-tree
十月南城1 小时前
分布式ID选型——雪花、号段、数据库自增与时钟回拨的风险控制
数据库·分布式
老邓计算机毕设1 小时前
SSM校园快递代取平台32618(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·校园快递代取平台
次元工程师!1 小时前
Sa-Token完成路由鉴权
java·服务器·前端
摸鱼仙人~1 小时前
RAG 系统中的 TOC Enhance:用“目录增强”提升检索与生成效果
linux·运维·服务器
论迹1 小时前
【Redis】-- 单线程模型
数据库·redis·缓存