« うーん | メイン | 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