gpt4 book ai didi

mysql - Mariadb 设置数据目录位置失败

转载 作者:行者123 更新时间:2023-11-29 10:37:24 32 4
gpt4 key购买 nike

基础操作系统:Centos 7 Atomic 主机

我安装了Mariadb 10.2并将数据目录更改为/home目录下的文件夹。我对/etc/my.cnf 进行了相应的更改,以指向数据目录和 mysql 套接字。我还在 SE linux 环境中做了相关的更改。现在,当我通过 systemctl start mariadb 启动 mariadb 服务时,它失败了。 系统状态 mariadb.service 的输出为

Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.
# systemctl status mariadb.service
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/mariadb.service.d
└─migrated-from-my.cnf-settings.conf
Active: failed (Result: exit-code) since Tue 2017-09-12 13:54:15 CEST; 23s ago
Process: 3099 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
Process: 3066 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
Process: 3063 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Main PID: 3099 (code=exited, status=1/FAILURE)
Status: "MariaDB server is down"

/etc/my.cnf

[client-server]

[mysqld]
datadir=/home/data/db/mysql
socket=/home/data/db/mysql/mysql.sock

[client]
port=3306
socket=/home/data/db/mysql/mysql.sock

关于如何启动和运行 MariaDB 有什么想法吗?

最佳答案

终于,我找到了解决方案。下面的链接应该可以帮助遇到类似问题的任何人。第一个任务是执行更改 mariadb 数据目录的常规过程,第二个任务是允许 mariadb.service 使用/home 作为数据存储的基本目录。

任务 1:

已关注 by Gabriel Cánepa's advice在 Howtoing.com:

1.1.更改默认MySQL/MariaDB数据目录

# mkdir /mnt/mysql-data
# chown -R mysql:mysql /mnt/mysql-data

1.2.识别当前MySQL数据目录

# mysql -u root -p -e "SELECT @@datadir;"

1.3.将MySQL数据目录复制到新位置

# systemctl stop mariadb
# systemctl is-active mariadb
# cp -R -p /var/lib/mysql/* /mnt/mysql-data

1.4.配置新的MySQL数据目录

# vi /etc/my.conf

[mysqld]:
datadir=/mnt/mysql-data
socket=/mnt/mysql-data/mysql.sock
[client]:
port=3306
socket=/mnt/mysql-data/mysql.sock

1.5.将SELinux安全上下文设置为数据目录

# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?"
# restorecon -R /mnt/mysql-data

1.6.在任务2之后重新启动mariadb.service

# systemctl start mariadb

1.7.验证位置

# mysql -u root -p -e "SELECT @@datadir;"

任务 2:

suggested by Thomas :

要从 /home 运行 MariaDB SQL,请在文件 /usr/lib/systemd/system/mariadb.service 中更改:

ProtectHome=true

至:

ProtectHome=false

关于mysql - Mariadb 设置数据目录位置失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46175939/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com