MariaDB:自定义数据目录:始终需要保留 /var/lib/mysql 目录

问题描述 投票:0回答:1

我在 Centos 7.0 上安装了 MariaDB 服务器 13.0,禁用了 SELinux。我成功启动了 MariaDB 服务器。之后,我想自定义我的数据库数据目录。所以这是我的步骤:

  • 第1步:备份
    /var/lib/mysql
    目录
  • 第2步:复制到另一个地方:
    cp -Rp /var/lib/mysql /disk1/mysql
  • 第3步:将
    datadir
    my.cfg.d/server.cfg
    修改为:
    datadir=/disk1/mysql

然后我使用以下命令停止并重新启动 MariaDB 服务器:

sudo systemctl start mariadb

一切顺利。我可以创建一个新数据库、一个新表,我看到它更改了新路径中的数据。但是,如果我删除所有目录

/var/lib/MySQL
。我无法再启动我的服务器。

这是运行命令时的日志

systemctl status mariadb.service

  • mariadb.service - MariaDB 10.3.16 数据库服务器已加载:已加载(/usr/lib/systemd/system/mariadb.service;已禁用;供应商预设: 已禁用)插入:/etc/systemd/system/mariadb.service.d
    -custom.conf, migrated-from-my.cnf-settings.conf    Active: failed (Result: exit-code) since Fri 2019-06-28 11:55:59 +07;
      4s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/   Process: 23296 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER
      $_WSREP_START_POSITION (code=exited, status=1/FAILURE)   Process:
      23281 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] &&
      VAR= ||   VAR=
    /usr/bin/galera_recovery`; [ $? -eq 0] && 系统控制 设置环境_WSREP_START_POSITION=$VAR ||退出 1(代码=退出, 状态=0/成功)进程:23277 ExecStartPre=/bin/sh -c systemctl 未设置环境_WSREP_START_POSITION(代码=退出, 状态=0/成功)主PID:23296(代码=已退出,状态=1/失败)
    状态:“MariaDB 服务器已关闭”

我的旧数据库服务器,我可以删除

/var/lib/mysql
。请给我解释一下原因。

mysql mariadb
1个回答
1
投票

我检查了MySQL日志,它有一行内容:

"cannot read file /var/lib/mysql/mysql.sock"

这是我的旧目录,所以我想我需要自定义

mysql.sock

/etc/my.cnf.d/server.cnf

[mysqld]
datadir=/disk1/mysql/
socket=/disk1/mysql/mysql.sock

/etc/my.cnf.d/client.cfg

[client]
# we need to configure this. so when we type mysql -u user. mysql can look up socket's location.
socket=/disk1/mysql/mysql.sock

之后,我可以运行并成功连接到我的 MySQL 实例。我不知道为什么没有教程指出这一点。但这是我用来解决问题的方法。

© www.soinside.com 2019 - 2024. All rights reserved.