« キャンバスを生成する | メイン | 設定ミスで起動しなくなったら (Linux) »

カテゴリー:MySQL 

データの保存場所を変更する その1 (MySQL4.x)

このエントリーを含むはてなブックマーク  livedoorクリップ  データの保存場所を変更する その1 (MySQL4.x)をdel.icio.usに追加  データの保存場所を変更する その1 (MySQL4.x)をYahoo!ブックマークに追加  データの保存場所を変更する その1 (MySQL4.x)をニフティクリップに追加

MySQL4.0(Linux)でデータベースやログの保存場所を変更したい。
その手順を示す。

※注釈
今回はVineLinux3.2上にapt-getでインストールした物を変更するケースとなる。ほかのディストリビーションやソースからコンパイルした場合、バイナリ版では異なる可能性がある点に注意。

移行の方法は大きく2つある。
シンボリックリンクを使う方法と、設定ファイルを書き換える方法だ。ここでは設定ファイルを書き換える方法になる。

移行自体は(データが巨大な物でなければ)30分もかからないだろう。次のように大きく4つのステップで完了する。

  1. MySQLサーバを停止(stop)する
  2. 移動先にデータをコピー
  3. 設定ファイル変更
  4. MySQLサーバを起動(start)する

■1. MySQLサーバを停止(stop)する
root → mysql にユーザーを変更し、起動スクリプトから停止を行う。

[admhoge]$ su -
Password:
[root]# su mysql
bash-2.05b$ /etc/init.d/mysql stop


■2. 移動先にデータをコピー
デフォルトでは「/var/lib/mysql」以下にデータベースや各種ログが入っているのでディレクトリ毎コピーすれば良い(-rオプションはディレクトリコピーを示す)。

bash-2.05b$ cp -r /var/lib/mysql /newdir

mvで移動しても良いが、運用開始後に切り返す可能性を考え必ずコピーで。この時mysqlを起動するユーザーとデータの所有者が一致すること。ここでは前段階で所有者である「mysql」にユーザーを変更しているため特に何もしない。ミスった場合は焦らずchownしてやればよい。


■3. 設定ファイル変更
いったんrootにもどり(my.cnfの所有者がrootだったため)、vi,emacsなどのエディタで設定ファイルを開く。

bash-2.05b$ exit
[root]# vi /etc/my.cnf

[mysqld]の下あたりにdatadirを追加する。既存の設定ファイルに存在しない場合でも、自分で追加すればちゃんと認識してくれる。保存して終了する([esc] → :wq)

# The MySQL server
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
〜中略〜
datadir = /newdir/mysql


■4. MySQLサーバを起動(start)する

[root]# su mysql
bash-2.05b$ /etc/init.d/mysql start


以上で終了だ。
後はSELECT,INSERTやUPDATEなどを一通りテストし、ちゃんと新しい方に反映されているかを確かめれば良い。

ここでは設定ファイル(/etc/my.cnf)を編集したが、当環境では起動スクリプト(/etc/init.d/mysql)上でデータディレクトリを指定し、mysqlを起動する際にオプションとして渡している。このような環境ではこの値を変更した方がスマートかもしれない。




トラックバック

このエントリーのトラックバックURL:
http://katsubemakito.net/mt/mt-tb.cgi/616

この一覧は、次のエントリーを参照しています: データの保存場所を変更する その1 (MySQL4.x):

» データの保存場所を変更する その2 (MySQL4.x) from CGI・Perl例文集
MySQL4.0(Linux)でデータベースやログの保存場所を変更したい。 ただ... [詳しくはこちら]

コメント

後でシンボリックリンクについての移動方法を書きます。
 ※ってかそっちを使えって感じですね(;´∀`)

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

VPSレンタルサーバー




クリエイティブ・コモンズ・ライセンス
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.