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

时间:2019-06-27 18:44:58

标签: mysql mariadb

我在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.cfgdatadir=/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] && systemctl   设置环境_WSREP_START_POSITION = $ VAR || 1号出口(代码=退出,   status = 0 / SUCCESS)进程:23277 ExecStartPre = / bin / sh -c systemctl   取消设置环境_WSREP_START_POSITION(代码=已退出,   status = 0 / SUCCESS)主PID:23296(代码=已退出,status = 1 / FAILURE)
      状态:“ MariaDB服务器已关闭”
  •   

我的旧数据库服务器可以删除/var/lib/mysql。请向我解释原因。

1 个答案:

答案 0 :(得分:1)

我已经检查了mysql日志。它的一行内容为“无法读取文件/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实例。我不知道为什么没有教程指出这一点。但这是我用来解决问题的一种方式。