MySQL5.5.16のインストールした後はまった件
ご無沙汰ですね。
書こう書こうと思ってすっかり忘れていたのですが、しばらく前に検証の為にMySQL5.5.16のインストールしたのですが、
誤ってmysql.server startをした後に、もう一度mysql.server startをしてしまったところ
プロセスが2つある・・・だと・・・
とまるでどこかの死神代行のような反応をしてしまいました。
mysqld_safeが複数プロセス立ち上がっているのです。
そしてmysql.server stopができない、と。
調べてみると、どうもうちの環境だと既に立ち上がっているMySQLのプロセスのチェックが効かない事があるようです。
mysqld_safeの中でpidチェックがうまく動いていないので、mysql.server startを2回やって、プロセスが2つ立ち上がってしまったら、速やかにプロセスを殺戮せしめ、mysqld_safe内を修正しましょう。
それで良いのか、うちの環境以外で再現するか、はわかりませんがね。
■環境
・OS
CentOS release 5.4 (Final) x86_64 GNU/Linux
・MySQL
MySQL5.5.16(/usr/local/mysql_testにインストール)
■いじった部分
vi /usr/local/mysql_test/bin/mysqld_safe 693行目あたり >> if ps wwwp $PID | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"$MYSQLD\" > /dev/null << if ps wwwp $PID | grep -v " grep" | grep -v mysqld_safe | grep -- "$MYSQLD" > /dev/null # if ps wwwp $PID | grep -v \" grep\" | grep -v mysqld_safe | grep -- \"$MYSQLD\" > /dev/null if ps wwwp $PID | grep -v " grep" | grep -v mysqld_safe | grep -- "$MYSQLD" > /dev/null then # The pid contains a mysqld process log_error "A mysqld process already exists" exit 1 fi
あー、grepがうまくいってなかったんですね。
なるほどなるほど。