mysql 5.1 でデータベースをインストール(not create)する場合のメモ

(

)

by

in

mysql を rpm などでインストールするとデータベースもインストールしてくれるが、それを破棄 or 使わずに新規にデータベースをインストールし直したい場合の手順とメモ

Reference: http://dev.mysql.com/doc/refman/5.1/ja/unix-post-installation.html

-1. 事前に決める事
 - mysql のオーナー user
以下の例では mysql
 - datadir データベースファイル群が入るディレクトリ (linux 版の default だと /var/lib/mysql etc.)
以下の例では /u01/data/mysql
– tmpdir  一時ファイル が入るディレクトリ
以下の例では /u01/tmp/mysql

 * 上記のディレクトリに、mysql のオーナー user の書き込み権限がある事が必要
  無いと、ERROR: 1049 Unknown database ‘xxxxxx’ といったエラーが発生する。

0. mysqld が停止している事を確認

1. my.cnf の編集
– 上記を反映 

[mysqld]
...
user = mysql
...
datadir = /u01/data/mysql
tmpdir = /u01/tmp/mysql
...

 * 直接関係しないが 5.1 では log_slow_queries は deprecated なので、以下のオプションに書き換えておかないと、その下のような warning が出る。

[mysqld]
...
# log_slow_queries   # is deprecated
slow_query_log=ON
slow_query_log_file=mysql-slow.log
long_query_time=0.5

my.cnf で log_slow_queriesを指定している場合の warning

[Warning] The syntax '--log_slow_queries' is deprecated and will be removed in MySQL 7.0. Please use '--slow_query_log'/'--slow_query_log_file' instead.

2. mysql_install_db でデータベースをインストール
* mysql_install_db のパスはインストール方法、ポートによって異なる可能性あり。

$ cd /u01/data/mysql
$ sudo /usr/bin/mysql_install_db --datadir=/u01/data/mysql --skip-name-resolve --user=mysql
Installing MySQL system tables...
OK
Filling help tables...
...

3. 新しい DB でインスタンス起動

$ sudo  /usr/bin/mysqld_safe;

* datadir に ib_logile(0|1), ibdata1, hostname.err, hostname.pid が出来ていれば OK

4. パスワード設定

 /usr/bin/mysqladmin -u root password 'new-password'
 /usr/bin/mysqladmin -u root -h 127.0.0.1 password 'new-password'