DBの設定

Ubuntu Serverインストール時にLAMPセットを選択しているので、MySQLがすでにインストールされて動いているはずです。まずは動作確認をしてみましょう。

MySQLの起動

$ mysql -u root

ERROR 1045: Access denied for user 'root'@'localhost' (using password: NO)

エラーがでて起動できません。確かインストールのときにrootのパスワードを設定したはずなんですけどね。あとで設定ファイルをいじったときに誤ってクリアしてしまったんでしょうか。
とりあえず、パスワードを設定しておきます。

$ mysql -u root -p
Enter password: xxxxxxxx

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.0.45-Debian_1ubuntu3.3-log Debian etch distribution

mysql>

無事、MySQLに入れました。いったん『quit』なり『exit』で抜け出しておきます。

MySQLの設定

デフォルトだとDBが『/var』に置かれるので、これを『/home』に移します。

$ sudo /etc/init.d/mysql stop
 * Stopping MySQL database server mysqld
   ...done.

まずMySQLを停止します。

$ sudo mv /var/lib/mysql /home

それから、MySQLのデータベースディレクトリを/homeに移動します。元のは残しておこうと思って『cp』でやると失敗しますので要注意。

$ sudo nano /etc/mysql/my.cnf
  datadir  = /home/mysql                ←  /var/lib/mysql 
  language = /usr/share/mysql/japanese  ← /usr/share/mysql/english

設定ファイルをこういうふうに書き換えます。

$ sudo /etc/init.d/mysql start
 * Starting MySQL database server mysqld
   ...done.
 * Checking for corrupt, not cleanly closed and upgrade needing tables.

MySQLを起動してお仕舞い。最後のメッセージが気になるが、不正な状態で終わったようなテーブルがないかどうかチェックしろよという「8時だよ全員集合!の掛け声」みたいなものだと理解する。

ちょっとチェック

本当に掛け声かどうか気になって仕方がないので、ググってみた。このメッセージが出て起動しない場合は深刻だけど動いている場合は気にしなくていいんじゃないというのが大勢みたい。でも一応、チェックだけはかけておく。

$ sudo mysql_upgrade -p
Looking for 'mysql' in: /usr/bin/mysql
Looking for 'mysqlcheck' in: /usr/bin/mysqlcheck
This installation of MySQL is already upgraded to 5.0.45, use --force if you still need to run mysql_upgrade

これはいいみたいだ。続いて、

$ sudo mysqlcheck --check-upgrade --all-databases --auto-repair -p
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.func                                         OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.host                                         OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK

これもいいみたいだ。まだユーザやDBすら作っていないんだから問題あるはずないよね。

参考

/varから/homeの移動は、こちら(→http://nekhet.ddo.jp/item/798)を参考にさせていただきました。多謝!