多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

MariaDB 与 Nginx 运维实战:从数据库管理到 Web 服务部署

MariaDB 与 Nginx 运维实战:从数据库管理到 Web 服务部署 Mariadb Nginx 小课堂摘要本文系统梳理 MariaDB 数据库与 Nginx Web 服务器的核心运维技能。数据库部分涵盖 SQL CRUD 操作、用户权限管理、逻辑/物理备份恢复以及主从同步复制Web 服务器部分讲解 Nginx 配置层级、虚拟主机、HTTPS、Basic Auth、静态/动态站点与反向代理。适合运维与后端开发者快速掌握常用生产实践。一、MariaDB 数据库1. SQL CRUD 数据表操作环境准备导入 sql 备份文件创建数据库后恢复数据。查询SHOW TABLES查看库内表DESCRIBE 表名查看表结构SELECT实现全字段、指定字段查询支持WHERE条件比较运算符、BETWEEN、IN、LIKE、AND/OR、ORDER BY排序聚合函数avg/max/min/sum/count搭配GROUP BY分组支持子查询、多表联合查询。DML 操作CREATE TABLE建表INSERT插入记录UPDATE修改记录不加WHERE会更新全表DELETE删除记录不加WHERE清空整张表DROP TABLE删除表。2. 数据库用户管理创建用户CREATE USER 用户名访问主机 IDENTIFIED BY 密码主机可以为%任意地址、指定 IP / 网段新建用户默认权限极低。授权 GRANT权限分为 4 个粒度全局*.*、数据库库.*、表库.表、列级别遵循最小权限原则。授权后可FLUSH PRIVILEGES;生效。配套操作SHOW GRANTS FOR 用户主机查看权限REVOKE回收权限DROP USER删除用户支持修改用户密码。故障处理远程连接失败排查思路忘记 root 密码、root 权限被回收、root 账号误删除的修复方案核心是跳过权限表启动数据库直接修改系统权限表。3. 备份与恢复逻辑备份mysqldump导出 SQL 文本可跨数据库迁移速度较慢支持备份单库、多库、全部库。恢复使用mysql 备份文件或者source命令。注意备份是否带建库语句恢复操作有差异。物理备份直接复制/var/lib/mysql数据目录速度快兼容性差备份恢复前均要停止 mariadb 服务恢复后修改文件属主为mysql:mysql。4. 主从同步复制架构一主一从、一主多从、级联复制、双主复制常用于读写分离、数据备份。原理主库写入 binlog 二进制日志从库 IO 线程拉取 binlog 写入 relay‑log 中继日志SQL 线程重放中继日志实现数据同步属于异步复制。部署要点主从server‑id必须唯一开启log_bin推荐binlog_formatROW行级复制主库创建专门复制账号show master status\G拿到 binlog 文件名与偏移量从库执行change master to配置主库信息start slave启动复制校验show slave status\GSlave_IO_Running、Slave_SQL_Running都为 Yes 代表正常。二、Nginx Web 服务器1. 基础部署yum 安装systemctl启停管理防火墙放行 http/https 服务修改 hosts 做域名解析测试。2. Nginx 配置文件结构层级全局块运行用户、worker 进程数、pid、错误日志events 块连接数、事件模型 epollhttp 块http 公共配置日志格式、sendfile、mime 类型内部嵌套多个server虚拟主机server 块虚拟主机监听端口、server_name域名、网站根目录 root内部嵌套多个locationlocation 块匹配访问路径支持 error_page 自定义错误页include 指令实现配置模块化拆分。3. 虚拟主机三种实现基于域名最常用同一端口不同server_name基于端口同一域名不同 listen 端口基于 IP极少使用。4. SSL/TLS HTTPS 配置openssl 生成自签名证书私钥 key、请求 csr、证书 crtserver 监听443 ssl配置证书与私钥路径配置 80 端口 301 重定向跳转 HTTPS防火墙放行 https。5. 基础认证 Basic Auth借助httpd-tools的htpasswd生成密码文件在 location 中配置auth_basic实现访问账号密码校验建议搭配 HTTPS。6. 静态站点与动态站点静态纯 html/css/jsNginx 直接返回文件无需后端环境性能高。动态需要后端程序PHP/Python/Java 数据库以 PHP‑FPM 为例Nginx 把.php请求通过 fastcgi 协议转发给 php‑fpm 解析执行返回执行结果给客户端。Nginx 配置 PHPlocation ~ \.php$配置fastcgi_pass 127.0.0.1:9000SCRIPT_FILENAME传递脚本路径增加try_files $uri 404做安全防护。7. 反向代理作用隐藏后端真实服务器、负载均衡、缓存、动静分离核心指令proxy_pass。location 匹配优先级精确匹配 ^~前缀匹配 正则~ / ~* 普通前缀匹配 /兜底匹配。proxy_pass 末尾/关键区别末尾带/剔除 location 匹配的路径前缀末尾不带/完整保留 location 匹配路径转发给后端。upstream模块可以定义后端服务器集群实现负载均衡代理时设置proxy_set_header传递客户端真实 IP、Host 等请求头。实践代理本地静态资源、代理远端后端 Web 服务器多个 location 规则叠加验证优先级可以配合rewrite做路径重写。
返回列表