OpenEuler 2403 下安装mariadb修改默认存储位置

📅 2026/6/17 3:45:12 👤 编程新知 🏷️ 技术资讯
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时配置比较复杂一些。为了安全