mysqld がない

RedHat Enterprise Linux 5 の設定をしていたら、mysqld がないために MySQL が起動できない状態だった。

MySQL の再インストールを試みる

# rpm -e --test mysql

MySQL の依存関係を調べてみると、devecot が依存しているようだった。devecot を再インストールすることにして、まずは devecot のアンインストールをする。

# rpm -e --test devecot
#

特に依存しているものがないようなので、アンインストールする。

# rpm -e devecot

そして、MySQL をアンインストールする。

# rpm -e mysql

そして、MySQL のオフィシャルサイトから、MySQLrpm パッケージをダウンロードhttp://dev.mysql.com/downloads/する。
ダウンロードしたのは、「Red Hat Enterprise Linux 5 RPM (x86)」版の「Server」「Client」「Shared libraries」をダウンロードする。

# mkdir rpm
# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-server-community-5.1.40-0.rhel5.i386.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/
# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-client-community-5.1.40-0.rhel5.i386.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/
# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-shared-community-5.1.40-0.rhel5.i386.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/

念のため、インストール前に確認をする。

# rpm -Uvh --test "MySQL-*.rpm"

エラーが発生しなければ、MySQL をインストールする。

# rpm -Uvh "MySQL-*.rpm"

インストール後に、起動をする。

# /etc/rc.d/init.d/mysql start
Starting MySQLCouldn't find MySQL manager (/var/lib/bin/mysqlmanager) or server (/var/lib/bin/mysqld_safe)                                  [failed]

起動しない…。念のため、シェルが吐き出しているエラーの内容を確認する。

# /bin/bash -x /etc/rc.d/init.d/mysql start
+ manager=/var/lib/bin/mysqlmanager
+ test -x /var/lib/libexec/mysqlmanager
+ test -x /var/lib/sbin/mysqlmanager
+ echo -n 'Starting MySQL'
Starting MySQL+ test -x /var/lib/bin/mysqlmanager -a 1 = 0
+ test -x /var/lib/bin/mysqld_safe
+ log_failure_msg 'Couldn'\''t find MySQL manager (/var/lib/bin/mysqlmanager) or server (/var/lib/bin/mysqld_safe)'
+ /etc/redhat-lsb/lsb_log_message failure 'Couldn'\''t find MySQL manager (/var/lib/bin/mysqlmanager) or server (/var/lib/bin/mysqld_safe)'
Couldn't find MySQL manager (/var/lib/bin/mysqlmanager) or server (/var/lib/bin/mysqld_safe)                                                [失敗]
+ exit 0

エラーを見ると、「/var/lib/bin/mysqld_safe」の存在の確認で失敗している。
mysqlmanager と mysqld_safe を探す。

# find / -type f -name mysqlmanager
/usr/sbin/mysqlmanager
# find / -type f -name mysqld_safe
/usr/bin/mysqld_safe

参照しているディレクトリが異なるようだ。なので、mysqld_safe の参照先を修正する。

# vi /etc/my.cnf
[mysql.server]
user=mysql
#basedir=/var/lib
basedir=/usr

保存をしたら、MySQL を起動してみる。

# /etc/rc.d/init.d/mysql start
Starting MySQL.                                            [  OK  ]

やっと起動した…。