« うーん | メイン | MovableType と MySQL 4.1 (or later) »

2006年12月08日

Vine4.0奮闘・mysqld [ カテゴリ : memo - 自宅サーバ設定(Linux、たまにWindows) ]

Vine4.0 にしようとしたら、こんなにエラーが・・・

# tail /var/lib/mysql/*.err
061208 9:22:52 [ERROR] bdb: unable to initialize mutex: Function not implemented
061208 9:22:52 [ERROR] bdb: process-private: unable to initialize environment lock: Function not implemented
061208 9:22:52 [Warning] './mysql/host' had no or invalid character set, and default character set is multi-byte, so character c
olumn sizes may have changed
061208 9:22:52 [Warning] './mysql/user' had no or invalid character set, and default character set is multi-byte, so character c
olumn sizes may have changed
061208 9:22:52 [Warning] './mysql/db' had no or invalid character set, and default character set is multi-byte, so character col
umn sizes may have changed
061208 9:22:52 [ERROR] Fatal error: mysql.user table is damaged or in unsupported 3.20 format.
061208 09:22:52 mysqld ended

んで my.cnf の[mysqld]にskip-bdb を加えた後、[ERROR] bdb: は消えたが、mysql.user がどったら、が消えない。
思い起こせば rpm (apt)したとき

NOTE: If you are upgrading from a MySQL <= 3.22.10 you should run
the /usr/bin/mysql_fix_privilege_tables. Otherwise you will not be
able to use the new GRANT command!

って出てたので(もとから4.xx だったと思うのだがなぁ)

# mysqld_safe --user=mysql --skip-grant-tables &
# /usr/bin/mysql_fix_privilege_tables
# pkill mysqld

さてどうなった?・・・・・起動したぞ!・・・・・って!

061208 11:09:00 [Warning] Found invalid password for user: 'root@localhost'; Ignoring user

root アカウントが壊れた~ww (@hostname も一緒にw)

またまた修正。--skip-grant-tables で突入して -u root で mysql.user 書き換えてしまうと。

# service mysql stop
# mysqld_safe --user=mysql --skip-grant-tables &
# mysql -u root
mysql>select user, password, host from mysql.user;
mysql>UPDATE mysql.user SET password=PASSWORD('password') WHERE user='root';
mysql>quit
# pkill mysqld

# service mysql start
# mysql -u root -p
mysql> (他の壊れたユーザーの方々の mysql.user レコード更新)

ちなみにこれがMT投稿テスト(BerkeleyDB だけどさw)

投稿者 JK : 2006年12月08日 11:36

トラックバック

このエントリーのトラックバックURL:
http://om.pizzica.to/mt-tb.cgi/63

コメント

 時既に遅しではあるけど、my.cnf に old-password を書いておくとうまくいったりしたのかな。4.0 以前→ 4.1 以降の非互換はなんともフォローしきれんかった。スマソ。

# あと文字列型フィールド長の非互換にも注意してくだせー。

投稿者 tomop : 2006年12月11日 02:36

ふはは、MovableType (俺のじゃない奴)を直すのに old-password は結局使ったような気がするw

フィールド長非互換はこれから xoops 対応で死ぬ予定w
それ以前に死んだのが、、、、まぁ後で投稿しとくw

投稿者 JK : 2006年12月11日 10:35