OpenEuler 2403 下安装mariadb修改默认存储位置 在生产环境中为了安全和更多的数据容量需要更改mariadb的默认存储位置。话不多说直接上实例。本例中默认的存储位置/data/mysql1、安装mariadbsudo dnf install mariadb-server -y2、创建数据存储目录并赋予权限sudo mkdir -p /data/mysql sudo chown -R mysql:mysql /data/mysql sudo chmod -R 750 /data/mysql3、修改mariadb的配置文件 /etc/my.cnf.d/mariadb-server.cnf[mysqld] datadir/data/mysql socket/var/lib/mysql/mysql.sock log-error/data/mysql/mariadb.log pid-file/run/mariadb/mariadb.pid4、启动mariadb服务进行测试sudo systemctl start mariadb.service ### 结果启动失败查看详细信息 journalctl -xeu mariadb.service 6月 16 09:40:58 localhost.localdomain mariadbd[14030]: 2026-06-16 9:40:58 0 [ERROR] Aborting 6月 16 09:40:58 localhost.localdomain systemd[1]: mariadb.service: Main process exited, codeexited, status1/FAILURE Subject: Unit process exited Defined-By: systemd Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel An ExecStart process belonging to unit mariadb.service has exited. The process exit code is exited and its exit status is 1. 6月 16 09:40:58 localhost.localdomain systemd[1]: mariadb.service: Failed with result exit-code. Subject: Unit failed Defined-By: systemd Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel5、修改SELinux策略允许mariadb服务访问/data/mysql目录添加持久化的 SELinux 上下文规则 使用 semanage 将你的自定义数据目录及其所有子文件标记为数据库类型假设你的数据目录是 /data/mysqlsudo semanage fcontext -a -t mysqld_db_t /data/mysql(/.*)? sudo restorecon -Rv /data/mysql6、重启mariadb服务测试成功sudo systemctl restart mariadb sudo systemctl status mariadb ● mariadb.service - MariaDB 10.5.29 database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; preset: disabled) Active: active (running) since Tue 2026-06-16 10:12:55 CST; 6s ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Process: 25747 ExecStartPre/usr/libexec/mariadb-check-socket (codeexited, status0/SUCCESS) Process: 25777 ExecStartPre/usr/libexec/mariadb-prepare-db-dir mariadb.service (codeexited, status0/SUCCESS) Process: 25831 ExecStartPost/usr/libexec/mariadb-check-upgrade (codeexited, status0/SUCCESS) Main PID: 25814 (mariadbd) Status: Taking your SQL requests now...** 在服务状态里有警告 (一般可以忽略)(mariadbd)[25814]: mariadb.service: Referenced but unset environment variable evaluates to an empty string: MYSQLD_OPTS, _WSREP_NEW_CLUSTER**# 手动创建配置文件 sudo mkdir -p /etc/systemd/system/mariadb.service.d/ sudo nano /etc/systemd/system/mariadb.service.d/override.conf # 将如下内容写入override.conf [Service] EnvironmentMYSQLD_OPTS Environment_WSREP_NEW_CLUSTER # 确保文件权限正确 sudo chown root:root /etc/systemd/system/mariadb.service.d/override.conf sudo chmod 644 /etc/systemd/system/mariadb.service.d/override.conf #重新加载配置生效 sudo systemctl daemon-reload sudo systemctl restart mariadb重启mariadb服务后警告消失sudo systemctl enable mariadbCreated symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service. Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service. Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.重启服务器后测试mariadb正常启动。总结不关闭SELinux时配置比较复杂一些。为了安全
💡
读完这篇文章,你可以带走什么

本文来自编程新知一线开发与建站实战沉淀:讲清原理、给出可复现步骤、标注避坑要点。看完后可以直接在你的项目或网站中落地验证。

编程新知内容团队
一线开发 · 建站实施 · 持续更新
由资深前端工程师、后端架构师与建站实施人员共同维护,坚持"真实案例 + 完整步骤 + 避坑指南"的内容准则。如果你在落地中遇到问题,欢迎联系我们交流。

想把这套方案用到自己的项目上?

编程新知提供技术答疑与网站建设一站式服务,欢迎联系我们获取针对性建议。

联系工程师
📚

系统学习该技术

进入对应栏目,从基础到进阶完整学习,配套案例与避坑指南。

前往栏目 →
🏗️

需要落地实施

企业建站、SEO 优化、服务器部署等需求,交给工程师一步到位。

了解服务 →
💬

还有疑问

技术难题或方案咨询,联系编程新知获取一对一的专业建议。

联系我们 →