MySQLが吐いていたエラーメッセージはこうだった。
relocation error: /usr/bin/mysql_upgrade: symbol dynstr_append_os_quoted version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference
Google検索で引っかかったのは2件。しかし幸いな事に、トップで表示されているページにて解決法がわかった。そのページはここ。
/var/lib/mysql/.run-mysql_upgrade
というサイズ0のアップグレード用と思われるスクリプトを消せばよいのだ。
想像するにopenSUSEのシステムアップグレードかMySQLがアップデートされたかによる「好意」の賜物で、このファイルが作成されたのだとは思う。が、サイズ0のアップデートスクリプトを起動しようとしてエラーになっていた。という所なのだろうか。これを削除した所、何事も無くMySQLは起動した。
しかし…。
先日「システムの起動が遅くなったようだ」と書いたように、どうも一瞬もたつくような動作をする時も見受けられなんだろう?と思ったのだが、hdparmにてパラメータを見るとHDDの動作パラメータが無し無しの状態になっていた。
それもおかしな話だと思いつつ、DMA等を有効にし -t オプションを使ったテストを実行。だが、あからさまに低い転送速度しか出ない。
再度パラメータを確認するとDMAが無効になっている。変だ。何かおかしい。
ブートログやwarnログを漁ると、HDDに関するエラーがたくさん記録されている。
hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
これに関しまたもやGoogleで検索してみると結構同様の症状が発生している事は多いようだ。単純にHDDが壊れる寸前だから交換した方がいい、と失礼ながら短絡的な回答のものも多かったが(もちろん本当に壊れかけの場合も往々にしてあるだろう)、別のマシンに繋いでエラーチェックすると不良セクタ等のエラーはみつからない、というものもいくつかあった。
openSUSEのシステムアップグレードをする前のログを漁ると(余談だが例の3c905でのバグでpci_set_power_state()~により巨大なファイルとなっていて漁るのも大変だった)、HDDのDMAに関するエラーは一切無い。記憶でもDMAは有効になっていたし動作にひっかかりを覚えるような事もなかった。
S.M.A.R.T.を確認してみても、代替セクターを使用したりといった事はないようだ。そしてこのDMA関係のエラーによりS.M.A.R.T.のエラーカウンターが増えているようで泣けてくる…。
作業中に振動を与えた等、そういう事があれば別だが、システムをアップグレードした(=カーネルのアップデートをした)事によって、HDDに物理的障害が起こるとは考えにくい。可能性が高いのはカーネルやIDEドライバ、ACPIやAPM関係のドライバが変わった事で、HDDに対するOSの挙動そのものが変わった事だと思う。挙動が変わったというよりはバグくさい感じがするのだが。
うーん…。pci_set_power_state()~でログが溢れるバグが無くなったと思ったら別の問題…。幸いな事にpromiseのIDEコントローラもオンボードで載っているマザーなので、どうしようもなかったらそちらを試してみようと思う。