修改 MariaDB/MySQL 数据存储目录

本文档详细介绍了如何将MariaDB的数据目录从/var/lib/mysql迁移到/home/mariadb-data,并处理因新目录导致的启动问题。涉及步骤包括查看当前存储目录、创建新目录、修改权限、停止服务、复制文件、更新配置文件、修改mariadb.service的ProtectHome属性,以及重新启动服务。操作过程中强调了文件属性的保留和系统服务的重新加载。参考链接提供了更多相关信息。
摘要由CSDN通过智能技术生成

OS: Debian 11
Version: MariaDB 10.5.11
主要注意几点:

  1. 文件权限,属性
  2. 新目录位置导致的无法启动

MySQL也是差不多的.

  1. 查看当前存储目录
    a. mysql -u root -p -e "SELECT @@datadir;"
  2. 创建新存储目录
    a. mkdir /home/mariadb-data 创建数据存储目录
    b. chown -R mysql:mysql /home/mariadb-data 更换所有者等信息
  3. 停止服务
    a. systemctl stop mariadb.service
  4. 复制原目录文件至新目录
    a. cp -R -p /var/lib/mysql/* /home/mariadb-data -p: 保留文件属性
  5. 修改 MariaDB 配置文件(记得先备份)
    a. vi /etc/mysql/mariadb.conf.d/50-server.cnf
    b. 修改 basedir/home/mariadb-data
  6. 修改 mariadb.service
    a. 因为现在 MariaDB 不允许将数据目录存放在 /home,/root and /run/user 等目录.
    b. 所以需要修改 mariadb.serviceProtectHome 属性.
    c. 因为数据库更新等原因,不要直接修改 mariadb.service, 而是通过 systemctl edit mariadb.service.
    d. 添加如下内容后保存,文件名使用 override.conf, 默认的关闭编辑器后消失,不知道为什么.
    e. 重新加载 systemctl daemon-reload. (一开始没成功,不知道后来咋成功的…)
    # Service 块不要忘记!!!
    [Service]
    ProtectHome = false
    
  7. 重新启动 MariaDB
    a. systemctl start mariadb.service

参考:

  1. https://www.tecmint.com/change-default-mysql-mariadb-data-directory-in-linux/
  2. https://serverfault.com/questions/872478/cannot-change-mariadb-datadir-since-debian-9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值