こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

mysqlのデータディレクトリの変更

debian8を再インストールし、データベースをインポートしました。
Mysqlのディレクトリが/var/mysqlになっているらしく、/var/mysqlniにインポートされています。そのDBを利用しているwordpressは正常にデータが表示されます。
しかし/varのパーティショサイズは、多く確保できないので、DBが/varを圧迫してしまうので。mysqlのDBを容量に余裕がある/home/mysql_data配下に設定変更したいのです。ネットで調べると/etc/my.cnfと言うファイルに
[mysqld]
# datadir=/var/lib/mysql
datadir=/home/mysql_data
# socket=/var/lib/mysql/mysql.sock
socket=/home/mysql_data/mysql.sock
変更を加えることで実現できるという記事があるが、,my.cnfというファイルは
/var/lib/dpkg/alternatives/my.cnf
/etc/mysql/my.cnf
/etc/alternatives/my.cnf
に存在するが、datadirの記述されている部分は無い。
/etc/mysql/mariadb.conf.d/50-server.cnf に

user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking



また
/home 配下に「datadir」を設置する場合。
To run MariaDB SQL from /home, in the file /usr/lib/systemd/system/mariadb.service, just change :
$ sudo vi /usr/lib/systemd/system/mariadb.service
ProtectHome=true
to :
ProtectHome=false
とする記述に変更し
datadirに/home/mysql_dataと変更して
systemctl start mariadb.serviceをしても、mysqlの起動がエラーになってしまう。

debian8でmysqlのデータディレクトリを変更する方法を教えてください。

投稿日時 - 2018-04-21 17:40:26

QNo.9490920

困ってます

質問者が選んだベストアンサー

Debian 8.10 で確認してみましたが、標準では /etc/mysql/my.cnf に datadir が設定されています。

以下のように設定変更し、
/etc/mysql/my.cnf
datadir = /home/mysql_data

mysql サービスを停止してから

systemctl stop mysql
/var/lib/mysql から /home/mysql_data にデータを移動もしくはコピーします。

cd /var/lib/mysql
mv -f * /home/mysql_data/
cd /home/mysql_data
chown -R mysql:mysql .

systemctl で mysql サービスを再起動できました。

systemctl start mysql

# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 36
Server version: 10.0.32-MariaDB-0+deb8u1 (Debian)

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select @@datadir;
+-------------------+
| @@datadir |
+-------------------+
| /home/mysql_data/ |
+-------------------+
1 row in set (0.00 sec)

以上、ご参考になれば幸いです。

投稿日時 - 2018-04-22 14:31:00

補足

debian8.10をインスト―ルし、PHP5やmysqlを入れると、sealion2018さんに教えていただいたように/etc/mysql/my.cnf のなかにdatadir等の設定場所があり、思い通りの場所にMySQLデータが格納されるようになりました。

投稿日時 - 2018-04-27 00:03:47

お礼

私のDEBIAN8のリビジョンは8.7です。8.10を手に入れました。
下手な考えで、/var/lib/mysqlを/home/mysql_dataにSOFT-LINKした結果矛盾が発生してリカバリーが不可能なようなので、またOSの再インストールから8.10で行ってみます。頂いた情報でdatadirがhomeディレクトリに向くようにやってみます。
結果は、実施後お知らせします。ありがとうございました。

投稿日時 - 2018-04-24 18:09:01

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.2

Debian8 標準の MariaDB 10.0 を利用されているのか、MariaDB 公式レポジトリから最新版 10.2 をインストールされているのか判断しかねますが、

mariadb.service ファイルでは、ProtectSystem も ProtectSystem=off に変更するといいと思います。

mariadb.service:
ProtectHome=false
ProtectSystem=off

systemctl daemon-reload
systemctl restart mariadb

投稿日時 - 2018-04-22 17:11:55

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-