目录
[(二)MariaDB 核心知识](#(二)MariaDB 核心知识)
[(三)LAMP 架构](#(三)LAMP 架构)
[步骤 1:环境准备](#步骤 1:环境准备)
[步骤 2:安装 MariaDB](#步骤 2:安装 MariaDB)
[步骤 3:服务管理(启动 / 停止 / 开机自启)](#步骤 3:服务管理(启动 / 停止 / 开机自启))
[步骤 4:初始化 MariaDB](#步骤 4:初始化 MariaDB)
[步骤 5:安全设置(必做)](#步骤 5:安全设置(必做))
[步骤 6:MariaDB 基础操作](#步骤 6:MariaDB 基础操作)
[1. mysqladmin 工具使用](#1. mysqladmin 工具使用)
[2. 数据库命令](#2. 数据库命令)
[3. 用户与权限管理](#3. 用户与权限管理)
[4. 表操作(增删改查)](#4. 表操作(增删改查))
[5. 备份与恢复](#5. 备份与恢复)
[步骤 7:LAMP 部署 WordPress](#步骤 7:LAMP 部署 WordPress)
[(一)PHP 页面展示数据库数据](#(一)PHP 页面展示数据库数据)
[1. MariaDB 与 MySQL 核心区别](#1. MariaDB 与 MySQL 核心区别)
[2. 生产环境安全规范](#2. 生产环境安全规范)
[3. 常见错误与解决](#3. 常见错误与解决)
[4. 高效运维技巧](#4. 高效运维技巧)
一、项目引入
随着电商网站普及,网购平台的用户注册 / 登录、商品管理、订单结算、公告发布 等核心功能,均依赖数据库实现。在 Linux 系统上部署稳定、安全、开源的数据库服务,是 Web 开发与运维的基础技能。
二、需求分析
- 理解数据库在 Web 服务中的核心作用
- 掌握 Linux 下 MariaDB 安装、配置、启动、初始化全流程
- 掌握 MariaDB 用户管理、权限控制、库表操作
- 完成LAMP 架构搭建,部署 WordPress 博客系统
- 实现 PHP 与 MariaDB 的交互,完成数据可视化展示
三、知识准备
(一)数据库基础概念
- 数据库定义 :数据的集合仓库,具备结构化存储、低冗余、多用户共享、易扩展特点。
- 关系型数据库:以表格形式存储数据,支持 SQL 操作,是 Web 系统主流选择。
- Linux 常用关系型数据库
- MySQL:LAMP 核心组件,开源易用,被 Oracle 收购
- MariaDB:MySQL 分支,完全兼容 MySQL,开源社区维护
- PostgreSQL:对象关系型数据库,功能强大
- Apache Derby:Java 编写,轻量级
- HSQLDB:小型快速,支持 SQL 标准
- Ingres:企业级大规模应用数据库
(二)MariaDB 核心知识
- 定位 :MySQL 的开源分支,由 MySQL 创始人主导开发,GPL 开源协议。
- 核心优势
- 完全兼容 MySQL(API、命令行、存储结构一致)
- 存储引擎用XtraDB替代 InnoDB,性能更优
- 开源无商业限制,更新速度快于 Oracle MySQL
- 主流开源软件(WordPress/Drupal/phpMyAdmin)均支持
- 诞生背景:Oracle 收购 Sun 后,MySQL 开源前景存疑,社区推出 MariaDB 作为替代方案。
(三)LAMP 架构
- L:Linux(操作系统)
- A:Apache(Web 服务器)
- M:MariaDB/MySQL(数据库)
- P:PHP/Perl/Python(后端语言)
- 作用:搭建动态网站的经典开源组合,稳定、免费、通用。
四、项目实施(完整操作步骤)
步骤 1:环境准备
配置 IP 地址(示例:172.16.43.254)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
ifconfig ens33
关闭防火墙并禁止开机自启
systemctl stop firewalld
systemctl disable firewalld
关闭 SELinux(临时 + 永久)
setenforce 0
getenforce # 查看状态:Permissive
vi /etc/selinux/config # 修改SELINUX=permissive
步骤 2:安装 MariaDB
检查是否已安装
rpm -q mariadb
一键安装所有相关包
yum install -y mariadb*
验证安装结果
rpm -qa | grep mariadb
步骤 3:服务管理(启动 / 停止 / 开机自启)
# 启动
systemctl start mariadb
# 停止
systemctl stop mariadb
# 重启
systemctl restart mariadb
# 查看状态
systemctl status mariadb
# 设置开机自启
systemctl enable mariadb
# 禁止开机自启
systemctl disable mariadb
步骤 4:初始化 MariaDB
初始化数据库文件
mysql_install_db
查看数据目录(默认:/var/lib/mysql)
cd /var/lib/mysql
ls
ll /var/lib/ | grep mysql # 确认属主属组为mysql
配置主配置文件 my.cnf
# 从模板复制配置文件
cp /usr/share/mysql/my-small.cnf /etc/my.cnf
# 编辑配置
vi /etc/my.cnf
- 模板说明:my-small(小内存)、my-medium(中等)、my-large(大内存)、my-huge(超大内存)
步骤 5:安全设置(必做)
初始无密码登录
mysql -uroot
exit # 退出
安全初始化脚本(设置 root 密码、删除匿名用户、禁止远程 root、删除 test 库)
mysql_secure_installation
密码登录(-p 与密码无空格)
mysql -uroot -p000000
步骤 6:MariaDB 基础操作
1. mysqladmin 工具使用
# 修改密码
mysqladmin -uroot -p旧密码 password 新密码
# 创建数据库
mysqladmin -uroot -p密码 create 库名
2. 数据库命令
-- 查看所有库
show databases;
-- 创建库
create database student;
-- 使用库
use student;
-- 查看库中表
show tables;
-- 删除库
drop database student;
3. 用户与权限管理
-- 创建本地用户
create user 'kk'@'localhost' identified by '654321';
-- 授予本地库所有权限
grant all privileges on student.* to kk@'localhost';
-- 授予远程所有权限
grant all privileges on *.* to root@'%' identified by '密码';
-- 授予部分权限(查/增/改/删)
grant select,insert,update,delete on *.* to test1@'%' identified by 'abc';
-- 刷新权限
flush privileges;
-- 查看权限
show grants for 'kk'@'localhost';
-- 查看所有用户
select user,host from mysql.user;
- 权限说明:
%表示任意 IP 可登录;localhost仅本地登录
4. 表操作(增删改查)
-- 创建表
create table info(
xm char(8), -- 姓名
no char(8), -- 学号
cj int(10), -- 成绩
addr text -- 地址
);
-- 查看表结构
describe info;
-- 插入数据
insert into info values("zhangsan","20170102",98,"hangzhou");
-- 查询数据
select * from info;
-- 修改数据
update info set no=20180105 where xm="lisi";
-- 删除数据
delete from info where xm="lisi";
-- 删除表
drop table info;
5. 备份与恢复
# 备份(导出)
mysqldump 库名 -u root -p密码 > 路径/文件名.sql
# 恢复(导入)
mysql 库名 -u root -p密码 < 路径/文件名.sql
步骤 7:LAMP 部署 WordPress
安装 Apache
yum install -y httpd
安装 PHP
yum install -y php*
测试 PHP 页面
cd /var/www/html
vi index.php
<?php phpinfo(); ?>
systemctl start httpd
测试 PHP 连接 MariaDB
vi mysql.php
<?php
$conn=mysql_connect('127.0.0.1','root','密码');
if($conn) echo "Connected";
else echo "Fail";
?>
创建 WordPress 数据库
create database wordpress;
grant all privileges on *.* to root@'%' identified by '密码';
部署 WordPress
unzip wordpress.zip
cd wordpress
cp wp-config-sample.php wp-config.php
vi wp-config.php # 配置数据库信息
浏览器访问安装
http://172.16.43.254/wordpress
五、反思与进阶
(一)PHP 页面展示数据库数据
<?php
// 连接数据库
$con1=mysql_connect("localhost","root","111111");
// 选择库
mysql_select_db("student",$con1);
// 查询数据
$r1=mysql_query("select * from info");
// 表格输出
echo "<table align=center width=600 border=1>";
while($a=mysql_fetch_array($r1)){
echo "<tr>";
echo "<td>".$a["xm"]."</td>";
echo "<td>".$a["no"]."</td>";
echo "<td>".$a["cj"]."</td>";
echo "<td>".$a["addr"]."</td>";
echo "</tr>";
}
echo "</table>";
?>
(二)图形化管理工具
- phpMyAdmin:Web 界面管理 MariaDB,直观易用,适合新手。
- 部署方式:安装 phpMyAdmin 包,配置 Apache 访问即可。
六、扩展知识(重要补充)
1. MariaDB 与 MySQL 核心区别
| 对比项 | MariaDB | MySQL |
|---|---|---|
| 维护方 | 开源社区 | Oracle |
| 授权 | 完全开源 | 部分功能商业版 |
| 存储引擎 | XtraDB(性能更强) | InnoDB |
| 兼容性 | 100% 兼容 MySQL | 原生 |
| 更新速度 | 更快 | 较慢 |
2. 生产环境安全规范
- 禁止 root 用户远程登录
- 给所有数据库用户设置强密码
- 最小权限原则:仅授予必要权限
- 定期备份数据库
- 开启日志审计
3. 常见错误与解决
- 登录失败:检查密码、SELinux、防火墙
- 无法远程连接:授权
@'%'、配置 bind-address=0.0.0.0 - 启动失败:检查 /var/lib/mysql 权限、配置文件语法
4. 高效运维技巧
- 自定义 my.cnf 优化内存、连接数、缓存
- 使用 systemd 统一管理服务
- 定时任务自动备份数据库
- 使用主从复制实现高可用
七、项目小结
- 掌握 MariaDB安装→配置→初始化→安全设置→库表操作全流程
- 理解 LAMP 架构原理,能独立部署动态网站
- 掌握用户权限、远程连接、备份恢复等运维核心技能
- 实现 PHP 与 MariaDB 交互,完成数据 Web 展示
- 具备生产环境数据库部署与基础维护能力