mysql:14389
From: <idaaki@xxxxxxxxxx>
Date: Thu, 21 Feb 2008 09:43:47 +0900
Subject: [mysql 14389] Re: レプリケーション時にDecimal型の値だけ壊れる
こんにちは。 最近、私も同じような現象で困っているので、 解決にはならないかもしれませんが、参考になれば。 DBの文字コード(もしくは接続している文字コード)が CP932ではないでしょうか? このあたりの修正での影響で、そのような状態になっている ようです。 http://bugs.mysql.com/bug.php?id=11338 解決(回避)するには ・CP932以外の文字コードで接続する ・PreparedStatementを使用しない ・(PHPで確認している感じでは、値をbindするさいに 数値としてbindすると問題ない) といった感じで回避できるようです。 > はじめまして、川畑と申します。 > > MySQLをJavaからJConnectorのPreparedStatement > で使用しているのですが > レプリケーションを行った際に、Decimal型が壊れるという現象が > 発生しております。 > > --- > OS:RHEL4 > MySQL:5.0.19 > Java:JDK1.4 > --- > > 例:下記のようなテーブルがあった際に > id int(8) > dec decimal(6,2) > > マスタDBに対しinsertを実行すると、正しく挿入されるのです > が > ( 例えば id = 4 dec = 5023.0 ) > それをレプリケーションしているスレーブ側でのぞく > と、decimalの > 値が999999などとおかしな値になっている状況です。 > > バイナリログをcatでみる限り、16進数のhex値 > でログに保存されている > ようなのです。これが原因なのかわかりませんが上記現象となります。 > > 切り分けですが、コマンドラインのmysqlクライアントで書き > 込むと > 正常にレプリケーションされ、またPHPMyAdminから書き込んでも > 正しくレプリケーションされてしまいます。 > > これ以上の対処法が見つからずご相談させていただきました。 > 何か情報があればお知らせいただきたいと思います。 > > --- > Yusuke Kawabata <kawabata at mars co jp> > ----------------------------------------------- IDAAKI mail:idaaki@xxxxxxxxxx
14387 2008-02-20 21:07 [Yusuke Kawabata <kaw] レプリケーション時にDecimal型の値だけ壊れる 14388 2008-02-21 07:42 ┣[とみたまさひろ <tomm] -> 14389 2008-02-21 09:43 ┗[<idaaki@xxxxxxxxxx> ]