MariaDB:自定义数据目录:始终需要保留/var/lib/mysql目录
我在Centos 7.0上安装了MariaDB服务器13.0,禁用了SELinux。我成功地启动了MariaDB服务器。之后,我想定制我的数据库数据目录。以下是我的步骤:MariaDB:自定义数据目录:始终需要保留/var/lib/mysql目录,mysql,mariadb,Mysql,Mariadb,我在Centos 7.0上安装了MariaDB服务器13.0,禁用了SELinux。我成功地启动了MariaDB服务器。之后,我想定制我的数据库数据目录。以下是我的步骤: 步骤1:备份/var/lib/mysql目录 第二步:复制到另一个地方:cp-Rp/var/lib/mysql/disk1/mysql 步骤3:从my.cfg.d/server.cfg修改datadir:datadir=/disk1/mysql 然后使用以下命令停止并再次启动MariaDB服务器: sudo systemc
- 步骤1:备份
目录/var/lib/mysql
- 第二步:复制到另一个地方:
cp-Rp/var/lib/mysql/disk1/mysql
- 步骤3:从
修改my.cfg.d/server.cfg
:datadir
datadir=/disk1/mysql
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
/usr/bin/galera_recovery`;[$?-eq 0]&&systemctl 设置环境_WSREP_START_POSITION=$VAR | |退出1(代码=退出, 状态=0/成功)进程:23277 ExecStartPre=/bin/sh-c systemctl 取消设置环境位置(代码=退出, 状态=0/成功)主PID:23296(代码=退出,状态=1/失败)-custom.conf,migrated-from-my.cnf-settings.conf活动:自2019-06-28 11:55:59+07周五以来失败(结果:退出代码); 4年前 文档:man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ 进程:23296 ExecStart=/usr/sbin/mysqld$mysqld\u OPTS$\u WSREP\u NEW\u集群 $\u WSREP\u START\u位置(代码=退出,状态=1/失败)进程: 23281 ExecStartPre=/bin/sh-c[!-e/usr/bin/galera_recovery]&& VAR=||VAR=
状态:“MariaDB服务器已关闭”
我的旧数据库服务器,我可以删除
/var/lib/mysql
。请向我解释原因。我已经检查了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实例。我不知道为什么没有教程指出这一点。但这是我用来解决问题的一种方法。可能的重复是不重复的。我提供了关于数据库版本、操作系统版本、我的步骤的更多细节,并详细指出了我无法成功的地方。请再仔细看看。所以如果你认为这不是我的反对票;)只有一个地方需要更改位置,这在本文中有所描述。另一件事更像是一个与服务器相关的问题。所以你应该在ServerFault上试试。“无法启动”--日志中有错误吗?@RickJames我已经通过自定义
mysql.sock
文件路径修复了我的问题。我不知道为什么没有教程讨论这个问题。(而且仍然成功)。你知道为什么吗?谢谢