Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
MySQL4、MySQL5を共存しようとしてこんなエラーがでました。
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
とりあえずやったこと
デフォルト /etc/my.cnf を見に行くのでmysql5用のは退避。あとで戻す # mv /etc/my.cnf /etc/my5.cnf
起動スクリプトを見る
# vi /etc/rc.d/init.d/mysql.server ↓datadirのパスを指定、確認 datadir=/usr/local/mysql/var
my.cnfを確認
今回はMySQL5はデフォでMySQL4をあとでいれるので/etc/my4.cnfという形で置いた
↓datadirのパスを指定、確認
新規作成 # vi /etc/my4.cnf [client] port = 3307 socket = /tmp/mysql.sock [mysqld] port = 3307 socket = /tmp/mysql.sock pid-file = /usr/local/mysql/mysqld4.pid datadir = /usr/local/mysql/var [mysqld_safe] log-error=/var/log/mysqld4.log pid-file=/usr/local/mysql/mysqld4.pid
ということでmysqlのデータは/usr/local/mysql/varということで
# /usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --user=mysql # chown -R mysql:mysql /usr/local/mysql 起動スクリプト修正 # vi /etc/rc.d/init.d/mysql.server ---- 155行目辺りに「--defaults-file=/etc/my4.cnf」を追記 $bindir/mysqld_safe --defaults-file=/etc/my4.cnf --datadir=$datadir --pid-file=$pid_file >/dev/null 2>&1 & MySQL4を停止・起動 # /etc/rc.d/init.d/mysql.server stop; # /etc/rc.d/init.d/mysql.server start; 動いているか確認 # netstat -anop 多すぎるので指定した3307ポートで動いているかどうか指定 # netstat -anop | grep 3307