MySQLが起動できない!


さくらVPSでMySQL5.5.17をインストールした時のお話。


まずは以下のコマンドを。

# /usr/bin/mysql_install_db

現象

MySQLを起動しようとしたら動かなかった。

/etc/init.d/mysqld start

ログを確認したら、以下のようなメッセージが出ていた。

111107 17:15:55 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
111107 17:15:55 [ERROR] Error message file '/usr/share/mysql/english/errmsg.sys' had only 480 error messages,
but it should contain at least 716 error messages.
Check that the above file is the right version for this program!
111107 17:15:55 [Note] Plugin 'FEDERATED' is disabled.
/usr/libexec/mysqld: Unknown error 1146
111107 17:15:55 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
111107 17:15:55 InnoDB: The InnoDB memory heap is disabled
111107 17:15:55 InnoDB: Mutexes and rw_locks use GCC atomic builtins
111107 17:15:55 InnoDB: Compressed tables use zlib 1.2.3
111107 17:15:55 InnoDB: Using Linux native AIO
111107 17:15:55 InnoDB: Initializing buffer pool, size = 128.0M
111107 17:15:55 InnoDB: Completed initialization of buffer pool
111107 17:15:55 InnoDB: highest supported file format is Barracuda.
111107 17:15:55 InnoDB: Waiting for the background threads to start
111107 17:15:56 InnoDB: 1.1.8 started; log sequence number 1595675
111107 17:15:56 [ERROR] Aborting

111107 17:15:56 InnoDB: Starting shutdown...
111107 17:15:57 InnoDB: Shutdown completed; log sequence number 1595675
111107 17:15:57 [Note]
111107 17:15:57 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

mysql_upgradeがどうとか出てるが、どうやらerrmsg.sysが原因のよう。
色んなサイトを参考にさせていただいた結果、これを更新すれば問題解決しそうだということがわかった。


comp_errを使って更新するようなのだが、現状だとcomp_errが見当たらなかったので、

wget http://downloads.mysql.com/archives/mysql-5.0/mysql-5.0.86-linux-x86_64-glibc23.tar.gz

でパッケージを落としてきて、その中に入っているものを使うことにした。

~/mysql-5.0.86-linux-x86_64-glibc23/bin/comp_err -C english -F /usr/share/mysql/errmsg-utf8.txt -D /usr/share/mysql/

usr/share/mysql/japanese/errmsg.sys
usr/share/mysql/ukrainian/errmsg.sys
usr/share/mysql/romanian/errmsg.sys
usr/share/mysql/italian/errmsg.sys
usr/share/mysql/french/errmsg.sys
usr/share/mysql/russian/errmsg.sys
usr/share/mysql/polish/errmsg.sys
usr/share/mysql/norwegian/errmsg.sys
usr/share/mysql/spanish/errmsg.sys
usr/share/mysql/norwegian-ny/errmsg.sys
usr/share/mysql/estonian/errmsg.sys
usr/share/mysql/dutch/errmsg.sys
usr/share/mysql/slovak/errmsg.sys
usr/share/mysql/portuguese/errmsg.sys
usr/share/mysql/korean/errmsg.sys
usr/share/mysql/czech/errmsg.sys
usr/share/mysql/danish/errmsg.sys
usr/share/mysql/swedish/errmsg.sys
usr/share/mysql/serbian/errmsg.sys
usr/share/mysql/hungarian/errmsg.sys
usr/share/mysql/greek/errmsg.sys
usr/share/mysql/german/errmsg.sys
usr/share/mysql/english/errmsg.sys