web-dev-qa-db-ja.com

MySql / MariaDBがDebian 9.1サーバーのデフォルトのdatadirを変更できない

Maria DBのデフォルトのdatadirを別のパーティションに移動するのに問題があります。それは非常に一般的であるように見えますが、運がなければできる限りのことをすべて試しました。

Mysqlは、Mariadb 10.1.26としてデフォルトのdebianパッケージ(apt-get install mysql-server)、Debian 9.1(ストレッチ)サーバー、mysqld -v 戻り値 mysqld 10.1.26-MariaDB-0+deb9u1

Default_mysql_datadir:/var/lib/mysql

New_mysql_datadir:/home/mysql

/var/lib/mysqlは「/ "(/dev/md3

/home/mysqlは「/home "(/dev/md4

私が試したこと

# systemctl stop mysql
# mv /var/lib/mysql /home

/etc/mysql/my.cnfのdatadirを変更します

datadir = /home/mysql

権限/許可に問題がないか確認してください

# chown -R mysql.mysql /home/mysql

apparmorがインストールされていないか、/etc/apparmor.d/usr.sbin.mysqldファイルは次のルールで存在します:

/home/mysql/ r,
/home/mysql/** rwk,

私も作成して空にしようとしました/var/lib/mysqこれを参照するフォルダ バグ

しかし、起動すると常に同じエラーが発生します。

# systemctl start mysql
[Warning] Can't create test file /home/mysql/<user>.lower-test
#007/usr/sbin/mysqld: Can't change dir to '/home/mysql/' (Errcode: 13 "Permission denied") 2017-09-07  0:16:59 140119808397888 [ERROR] Aborting
mariadb.service: Main process exited, code=exited, status=1/FAILURE
Failed to start MariaDB database server.
mariadb.service: Unit entered failed state.
mariadb.service: Failed with result 'exit-code'.

なにか提案を ?

ありがとう

3
fft

DatadirをProtectHome=falseディレクトリに移動するには、systemd設定ファイルで/homeを設定する必要があります。

Debianポリシールールに従って、このオプションの値を/etc/systemd/system/mariadb.service.d/YOUR_CUSTOM_FILE.confのようなカスタムファイルで設定する必要があります。

[Service]

# Prevent accessing /home, /root and /run/user
ProtectHome=false

次にsystemctlデーモンをリロードします:

systemctl daemon-reload

その後、MariaDB datadirを/var/lib/mysqlから/home/mysqlに変更できるはずです。

5
Nicolas Payart

/etc/systemd/mariadb.service.d/whatever.confのこのホワイトリスト:

[Service]
ReadWritePaths=/home/mysql

別の解決策かもしれませんが、私は Payart氏の知恵 なしでは見つけられなかったでしょう。

0
Brian Carcich