[前][次][番号順一覧][スレッド一覧]

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> ]