ブログ検索

メタ情報
RSS

このページに表示されているエントリー

母親が、これは何かと聞いてきた。

passcard

OK把握した。

9/30までミスタードーナツの商品(一部除く)が30%OFFで買えるらしい。何度でも。ダスキンのモップを利用していて、サービスで頂いたとのことだ。

これはちょっとすごいぜ。気になって調べてみると株主優待がゴミのようだ。昨年わが市にイオンが出店し、そのテナントにミスタードーナツが入っていることから、相乗効果を狙ったものとも思われる。パスカードもらっても近所にミスタードーナツがなかったらたいして嬉しくないもんね。

せっかくなんで新製品の抹茶のポンデライオンでも買ってこようかね。

XOOPSのつづき

すっかり自分のフォローアップばかりのこのブログ。今回もいってみよう。

いやほんと、無知すぎる > 自分

mysqldump コマンドを使ってSQL文として入出力をしようとしてたんだけど、べつにこれはアプローチとしては間違ってはいないと思う。なぜかデータが矛盾してるのがダメなわけで。

【MySQLウォッチ】第23回 押さえておきたいバックアップとリストアのポイントなどを見て調べていたらそのページの表のなかに「ファイルコピー」というのがあった。ページを読み進むとマジでコピーでいいらしい。そそくさと旧サーバの /var/lib/mysql/xxxx_db01 を新サーバにコピーしたら、動く動く・・・

そんな乱暴な方法でいいんかと思ったが、成功したことを喜ぶべきだろう。だが矛盾したデータはこれからも稼動し続けるわけだ。微妙な気持ち。

MySQL の運用はラクかもしれないと思った。かなりシンプルなんだね。PostgreSQL ばかり使ってたよ。

備忘録的にリリースノートをリンク

あらためて眺めてみると、ちょっと前のリリースにて自分がハマった原因みたいのを見つけた。

Java Database Connectivity (JDBC)

J2SE 5.0 での退行により、実行時にしか検出されない java.sql.Timestamp.compareTo のバイナリ互換性の問題が発生します。

このバグは、Java SE 6 の Beta2 と J2SE 5.0 の Update7 (5.0u7) で修正されています。

詳細については、バグレポート 5103041 を参照してください。

厳密には違うんだが Timestamp 絡みだったので、何か変更を加えてたんだなということは分かった。確かに実行時だけエラーになるんでちょっと困った。気が付くまでに時間かかっちゃったよ。

まあたいした問題ではなかったのだけど、文字列から Timestamp型を作ろうする際に、月や日の桁を揃えておかないとダメ(×:2007-7-8 ○:2007-07-08)みたいな。言われてみればその通りなんだけど、前は動いてたじゃんねえ。もう。

XOOPS
ブログもそうだけど、いわゆるCMSである。
簡単にいえば、ほーむぺーじのつーるをつかってほーむぺーじをかんりするシステムであろう。

んで、こないだからCentOSとかPostfixとか言ってるのは、とあるサーバの入れ替えをやってるからなんだけど、罠があった。MySQLとXOOPSが動いていた。この移行に躓く。

XOOPS本体ははPHPで書かれてるからとりあえずはいい。PHPのバージョン違いによる問題は、設定で吸収できる範疇だった。とりあえずMySQLも普通にやればいいかと考え、データベースのバックアップを取ってリストアを試みるもSQLエラーが出る。

内容は「キーの重複」のようなことだったのでバックアップファイルのSQL文を眺めてみる。テーブル定義ではキーが3フィールドに設定されているのを確認した。そのテーブルへのINSERT文を追いかけてみると、そのうちひとつのフィールドについて重複した行がすぐに見つかった。なんだかIPアドレスっぽいのが収録されているんで、そりゃ重複するわな。つうか、いったいこのデータはどうやって作ったんだよ・・・。エラーが出て当たり前だ。例えばMySQL的にキーを無視するような方法があるとして、それをやってしまう行儀の悪いXOOPSモジュールならばこういうこともあろうか。いや、それは適当すぎるか。

MySQLのバージョンは旧サーバ(Ver3系)→新サーバ(Ver5系)ではあるが、見たところ標準的なCREATE TABLE文とINSERT文だし、出るエラーも当然なものなので特に問題はないような。試しにキーの定義を除いて実行してみるも、別のところでエラーがでた。バックアップ全体で35MBもあるSQLの塊だ、ちょっと手がつけられない。

あんまし時間ないんで詳しい調査はまだこれから。旧サーバでインストール初期状態のXOOPSを用意して、同じ手法を用いて新サーバへの移行テストもやってみたが、これはうまくいってしまった。やはりテーブル定義と矛盾したデータが蓄積されていることが問題か・・・

どうしよう。