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'