Unix 系環境での MySQL データ・ディレクトリーの変更
MySQL データ・ディレクトリーを変更するには、以下のステップに従ってください。
-
サーバーにログインするにはPuTTYまたは優先クライアント。
データ・ディレクトリーに専用パーティションを使用している場合は、データをコピーした後で、元のデータ・ディレクトリーの代わりに新規パーティションを必ずマウントしてください。 新しいパーティションをマウントすると、一部のアプリケーションでは動作しない可能性がある非標準の構成変更が保存されます。
-
mysqld
(MySQL デーモン) をシャットダウンします。 デーモンを開始および停止するプロセスは、オペレーティング・システムおよびディストリビューションによって異なる場合があります。未加工ファイルに直接影響するプロセスの間は、MySQL を停止する必要があります。/etc/init.d/mysql stop
OR
/etc/init.d/mysqld, /etc/init.d/mysql-server, /usr/loca/etc/init.d/mysql, /opt/lamp…
-
変更を行う前に、データベースをバックアップします。 未加工データベース・ファイルの直接コピーを作成するときは、MySQL デーモンが実行されていないことを確認してください。
サーバー上で cPanel を使用する場合は、デーモンを再始動する前に cPanel (TailWatch および chkservd) を停止します。 一時ファイル /etc/chkserv.d/mysqlisevil
を作成して、chkservd
がサービスを再始動しないようにすることができます。 rsync を使い慣れていない場合は、他のツールを使用してバックアップを作成できます。
rsync -vaP /var/lib/mysql/ /var/lib/mysql.'date +%s'
-
データ・ディレクトリーを作成し、MySQL ユーザー (または「my.cnf」グローバル・オプション・ファイルで指定されているいずれかのユーザー) の所有権を提供します。 この例では、ロケーション
/var/lib/mysql-data
が使用されていますが、希望する任意のロケーションを使用できます。 特にこの目的のためにディスクまたは論理装置を追加する場合は、先に進む前に、/etc/fstab
にエントリーを追加し、ディレクトリーをマウントする必要もあります。chown mysql:mysql /var/lib/mysql-data
-
元のディレクトリの最終コピーを新しいディレクトリに作成しますMySQLデータディレクトリ(末尾の
/
最初のディレクトリの最後にあります):rsync -vaP /var/lib/mysql/ /var/lib/mysql-data
-
新規データ・ディレクトリーに正しい所有権 (デフォルト MySQL ユーザー/グループ、または「my.cnf」グローバル・オプション・ファイルで指定されたユーザー) があることを確認します。 不確かな場合は、次のコマンドを使用して、MySQL ユーザーおよびグループまでの階層全体を再帰的に所有できます。
chown -R mysql:mysql /var/lib/mysql-data
ユーザー MySQL には、データベース・フォルダーに対する全権限 (rwx) と、ログ、bin、データ、索引、およびフォームの各ファイルに対する読み取り/書き込み権限が必要です。
通常、データベース・フォルダーは 700 (drwx------) の権限を持ち、共有ホスティング環境にある間は mysql:mysql の所有権の下にあります。 専用環境では、権限を 755 (drwxr-xr-x) でより自由に設定できます。
-
「/etc/my.cnf」構成ファイルを更新して、新しいデータ・ディレクトリーを指すようにします。
構成ファイルを編集する前に、すべてをバックアップしてください。
cp -vp /etc/my.cnf /etc/my.cnf.'date +%s'
vi /etc/my.cnf
-
「/var/lib/mysql」のインスタンスを「/var/lib/mysql-data」に置き換えます。
datadir
エントリーがない場合は、[「mysqld」]スタンザ内に配置してください。[mysqld]
user = mysql
datadir = /var/lib/mysql-data
socket = /var/lib/mysql-datal/mysql.sock
-
一部のアプリケーションではカスタム構成を使用していますが、この資料では扱うことができません。 データ・ディレクトリーが /var/lib/mysql ではない場合、一部のスクリプトが失敗することが分かっています。 したがって、新しい場所を指すためにシンボリック リンクが使用されます。
mv -v /var/lib/mysql /var/lib/mysql.orig
ln -s /var/lib/mysql-data /var/lib/mysql
リンクを作成しない場合は、必ず「php.ini」内の 'mysql.default'_socket と 'mysqli.default'_socket を変更し、Apache を完全に停止してから開始してください。
- MySQL デーモンを開始します。
/etc/init.d/mysql start
- MySQL が動作していることを確認します。 If MySQL が応答しない場合は、エラー・ログを確認してください。 必要に応じて、変更を元に戻してください。
mysqladmin ping