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'.
なにか提案を ?
ありがとう
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
に変更できるはずです。
/etc/systemd/mariadb.service.d/whatever.conf
のこのホワイトリスト:
[Service]
ReadWritePaths=/home/mysql
別の解決策かもしれませんが、私は Payart氏の知恵 なしでは見つけられなかったでしょう。