CentOS 7 搭建 MariaDB 数据库服务
CentOS 7 搭建 MariaDB 数据库服务1. 服务介绍MariaDB 是兼容 MySQL 协议的关系型数据库可集中存储、查询和管理结构化数据常用于 Web 应用、WordPress、监控平台和认证系统。本实验安装 MariaDB迁移数据与日志目录配置远程管理账号并完成建库、建表、数据导入和自动备份。2. 准备运行环境本实验使用以下环境| 角色 | IP 地址 | 用途 || --- | --- | --- || MariaDB 服务端 | 10.1.100.101 | 运行数据库服务 || 测试客户端 | 10.1.100.50 | 验证远程连接 |• 操作系统CentOS 7.x。• 操作账号root 或具备 sudo 权限的管理员。• 软件源YUM 可用。• 磁盘/data所在文件系统有足够空间。• 网络客户端可访问服务端 TCP 3306 端口。开始前检查环境cat /etc/centos-release uname -r ip addr df -h /data ping -c 3 10.1.100.503. 相关知识• MariaDB 默认监听 TCP 3306本地客户端也可通过 Unix Socket 连接。• 迁移数据目录必须先停止服务并保留原目录备份直接移动运行中的数据文件可能造成损坏。•skip_name_resolveON可减少反向 DNS 查询但授权账号必须使用 IP 或网段不能依赖主机名。•innodb_file_per_tableOFF会让 InnoDB 表共享系统表空间删除数据后磁盘空间不容易直接回收。该设置用于复现实验要求新环境通常保持默认开启。• 远程访问要同时检查监听地址、数据库授权、防火墙和 SELinux 标签。• 数据库备份只有经过恢复测试才算有效生产环境还应设置异机保存、保留周期和备份告警。• 不建议开放 root 远程登录应创建独立管理账号并限制来源网段。4. 实验步骤4.1 安装并初始化 MariaDByum install -y mariadb mariadb-server rsync policycoreutils-python systemctl enable --now mariadb mysql_secure_installation按提示设置 root 密码、删除匿名账号、禁止 root 远程登录、删除测试数据库并刷新权限。4.2 迁移数据库存储目录先停止服务再复制原数据目录systemctl stop mariadb mkdir -p /data/database rsync -aHAX /var/lib/mysql/ /data/database/ chown -R mysql:mysql /data/database保留原目录备份确认新目录启动正常后再决定是否清理mv /var/lib/mysql /var/lib/mysql.backup为新目录设置 SELinux 数据库标签semanage fcontext -a -t mysqld_db_t /data/database(/.*)? restorecon -Rv /data/database4.3 配置数据库参数备份配置文件cp -a /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.bak mkdir -p /data/log/mariadb chown -R mysql:mysql /data/log/mariadb semanage fcontext -a -t mysqld_log_t /data/log/mariadb(/.*)? restorecon -Rv /data/log/mariadb编辑/etc/my.cnf.d/server.cnf在[mysqld]段加入[mysqld] datadir/data/database socket/data/database/mysql.sock innodb_file_per_tableOFF skip_name_resolveON bind-address0.0.0.0 log-error/data/log/mariadb/mariadb.log [client] socket/data/database/mysql.sock启动服务并检查状态systemctl start mariadb systemctl status mariadb --no-pager4.4 配置防火墙只允许实验网段访问 TCP 3306firewall-cmd --permanent --add-rich-rulerule familyipv4 source address10.1.100.0/24 port port3306 protocoltcp accept firewall-cmd --reload firewall-cmd --list-rich-rules4.5 创建数据库、表和测试数据登录数据库mysql -uroot -p执行以下 SQLCREATE DATABASE userdb DEFAULT CHARACTER SET utf8mb4; USE userdb; CREATE TABLE users ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL, PRIMARY KEY (id), UNIQUE KEY uk_username (username) ) ENGINEInnoDB; INSERT INTO users (username, email) VALUES (alice, aliceexample.com), (bob, bobexample.com); SELECT * FROM users;4.6 从 SQL 文件导入数据创建/tmp/userdb_data.sqlUSE userdb; INSERT INTO users (username, email) VALUES (carol, carolexample.com), (david, davidexample.com);执行导入mysql -uroot -p /tmp/userdb_data.sql mysql -uroot -p -e SELECT * FROM userdb.users;4.7 创建远程管理账号在 MariaDB 中创建仅允许实验网段登录的管理账号CREATE USER dbadmin10.1.100.% IDENTIFIED BY ChangeThis_StrongPassword!; GRANT ALL PRIVILEGES ON userdb.* TO dbadmin10.1.100.%; FLUSH PRIVILEGES; SHOW GRANTS FOR dbadmin10.1.100.%;生产环境应按业务库和操作类型进一步缩小权限不要长期授予全库管理权限。4.8 配置自动备份创建备份目录和脚本/usr/local/sbin/backup_mariadb.shmkdir -p /data/backup/mariadb cat /usr/local/sbin/backup_mariadb.sh EOF #!/bin/bash set -e BACKUP_DIR/data/backup/mariadb STAMP$(date %F_%H%M%S) mysqldump --single-transaction --routines --events -uroot -pRootPassword userdb | gzip $BACKUP_DIR/userdb_$STAMP.sql.gz find $BACKUP_DIR -type f -name userdb_*.sql.gz -mtime 7 -delete EOF chmod 700 /usr/local/sbin/backup_mariadb.sh生产环境不要把密码直接写进脚本。可把凭据放入权限为600的客户端配置文件再由备份账号执行。每天凌晨 2:30 执行备份cat /etc/cron.d/mariadb_backup EOF 30 2 * * * root /usr/local/sbin/backup_mariadb.sh /var/log/mariadb_backup.log 21 EOF5. 验证结果5.1 服务端验证检查服务、监听端口、数据目录和运行参数systemctl status mariadb --no-pager ss -lntp | grep :3306 mysql -uroot -p -e SELECT VERSION(); mysql -uroot -p -e SHOW VARIABLES LIKE datadir; mysql -uroot -p -e SHOW VARIABLES LIKE socket; mysql -uroot -p -e SHOW VARIABLES LIKE innodb_file_per_table; mysql -uroot -p -e SHOW VARIABLES LIKE skip_name_resolve; mysql -uroot -p -e SELECT * FROM userdb.users; journalctl -u mariadb -n 50 --no-pager tail -n 50 /data/log/mariadb/mariadb.log5.2 客户端验证在10.1.100.50安装客户端并远程连接yum install -y mariadb mysql -h 10.1.100.101 -u dbadmin -p -e SELECT * FROM userdb.users;客户端能够查询测试数据说明监听地址、防火墙和账号授权均已生效。5.3 备份与恢复验证手动执行一次备份并检查文件/usr/local/sbin/backup_mariadb.sh ls -lh /data/backup/mariadb gzip -t /data/backup/mariadb/userdb_*.sql.gz将最新备份恢复到测试数据库mysql -uroot -p -e CREATE DATABASE userdb_restore DEFAULT CHARACTER SET utf8mb4; zcat /data/backup/mariadb/userdb_*.sql.gz | mysql -uroot -p userdb_restore mysql -uroot -p -e SELECT COUNT(*) FROM userdb_restore.users;服务正常、客户端远程查询成功、数据目录和日志目录符合配置并且备份可以恢复说明 MariaDB 服务配置完成。

相关新闻

Streamlink:把直播流交给 VLC 播放,并自由选择清晰度

Streamlink:把直播流交给 VLC 播放,并自由选择清晰度

Streamlink:把直播流交给 VLC 播放,并自由选择清晰度 Streamlink 的具体作用是:解析受支持直播页面的可用流,将 best、worst 或指定清晰度交给 VLC 等播放器,也能按支持情况输出到文件。 能解决哪些具体问题 • 解析直…

2026/10/8 11:57:48 阅读更多 →
Navicat重置工具终极指南:如何轻松解锁无限试用期

Navicat重置工具终极指南:如何轻松解锁无限试用期

Navicat重置工具终极指南:如何轻松解锁无限试用期 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 开篇场景引入&a…

2026/9/27 18:34:36 阅读更多 →
Android对话框与物理按键监听开发指南

Android对话框与物理按键监听开发指南

1. Android弹出框类型全解析在Android开发中,弹出框(Dialog)是与用户交互的重要方式。根据使用场景和功能差异,Android提供了多种标准对话框实现方式,每种都有其特定的适用场景。1.1 基础AlertDialogAlertDialog是最常…

2026/9/25 11:43:10 阅读更多 →

最新新闻

Unity2D弹球游戏可运行完整项目:物理引擎+碰撞+UI闭环实现

Unity2D弹球游戏可运行完整项目:物理引擎+碰撞+UI闭环实现

简介:这是一份面向Unity初学者与2D游戏开发入门者的可运行完整项目,聚焦弹球游戏核心逻辑实现,帮助开发者掌握不依赖物理引擎的2D运动控制、碰撞检测、挡板交互、得分系统及UI状态管理等关键技能。资源包含432个文件,以128个info配…

2026/10/14 14:38:54 阅读更多 →
零基础网页制作入门:HTML与CSS实战指南

零基础网页制作入门:HTML与CSS实战指南

1. 项目概述与核心思路拆解 1.1 这个项目到底在解决什么问题 先说结论:创建简单网页教学这个方向,本质上是帮那些完全不了解前端的人,用最短的时间建立起对网页制作的基本认知和动手能力。很多人觉得做网页是程序员的专属技能,一…

2026/10/14 14:38:54 阅读更多 →
Kubernetes CronJob执行延迟排查:从控制器到节点侧的关键链路与优化

Kubernetes CronJob执行延迟排查:从控制器到节点侧的关键链路与优化

告警一夜之间刷了十几条:原本应该准点 1:00 执行的 CronJob,实际跑到 1:37 才从 Pod 里打出第一批日志。我盯着“执行延迟”三个字想了很久,最初以为是容器时间不同步,后来才发现问题根本不在 CronJob 控制器,而在调度…

2026/10/14 14:38:54 阅读更多 →
MySQL SELECT与SHOW实战:从基础查询到性能排查的完整指南

MySQL SELECT与SHOW实战:从基础查询到性能排查的完整指南

从接触数据库开始,大多数人的第一条SQL都是SELECT,而SHOW往往是那个“我知道它存在,但很少深入研究”的兄弟命令。这个主题虽然叫“简单检索”,但SELECT和SHOW几乎撑起了日常数据库操作的半边天:前者负责从一张或多张表…

2026/10/14 14:38:54 阅读更多 →
主成分分析PCA从原理到实战:高维数据降维的核心技术解析

主成分分析PCA从原理到实战:高维数据降维的核心技术解析

很多人在刚开始接触数据分析时,面对几十个甚至上百个特征,第一反应往往是茫然。画出来的散点图矩阵密密麻麻,算出来的相关系数表让人眼花缭乱,跑出来的模型又总被多重共线性拖后腿。这时候,主成分分析(PCA&…

2026/10/14 14:38:54 阅读更多 →
Pandas线性插值实战:空气质量数据异常值与缺失值处理

Pandas线性插值实战:空气质量数据异常值与缺失值处理

这段时间帮某个环境监测项目处理城市空气质量数据,遇到最多的不是模型效果差,而是数据本身的问题。一套PM2.5、PM10、NO2、SO2浓度数据拿过来,缺失值、异常值、重复记录混在一起,直接建模结果根本没法看。把这些数据清洗干净&…

2026/10/14 14:37:53 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →