###前提・実現したいこと
MySQL Ver4 で動いていた古いシステムを復活させるため Windows Server
2008 R2 に MySQL Server 5.6 をインストールして環境を再構築しました。
システムの中核部分はVB.NETで組みなおしましたが、一部は VB6 の頃の古い
EXE がそのまま動いています。
最終的にはDBのレプリケーションをおこないたいのですが、試行した限り、
レプリケーションで処理されるSQL内の日本語全角文字の部分でエラーが出て
処理がとまってしまいます。そのためDBの文字コードの設定が根本的に問題が
あるのではと思っております。
システムとしては(日本語全角文字列の保存・読出など含め)問題なく(?)
運用できてしまっているので、なんとかシステム運用を維持しながら設定を
正しく直し、レプリケーションをおこなうところまで漕ぎ着けたいです。
根本的に理解ができていない状況でお恥ずかしい限りですが、どなたか
アドバイスいただけると助かります。
###発生している問題・エラーメッセージ
レプリケーションの設定をして、Slave側で show slave status にて状況を
確認したところ、エラー 1366 が出て進まない状況のようで、エラーは下記
のような内容です。
Error 'Incorrect string value: '\xCF\xC2\xD3...' for column 'FLD01NAME'
at row 1' on query.
Default database: 'hogedb'.
Query: 'UPDATE hogetbl
SET FLD01NAME
=0xCFC2D3...
WHERE ID
= 0x3233333832313339'
本来は string value として全角文字(記号ではありません)が入るべき
ところが文字化けをしたためにエラーになっているのではと思っています
が正直自信がないです。
###該当のソースコード
Master側のサーバ上の MySQL Wotkbench にて
show variables like 'character_set%';
を実行したところ以下の表示となります。
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir C:\Program Files\MySQL\MySQL Server 5.6\share\charsets
また、各テーブルでも
ENGINE=InnoDB DEFAULT CHARSET=utf8
と設定しています。
そもそも、このあたりの設定が間違えているのではと考えています。
###試したこと
解決の糸口になるかわかりませんが、 Windows7 のクライアント端末から
ODBCで接続してACCESSでテーブルのデータを参照しようとする際、ODBC設定
の中の Character Set でいろいろと設定してみると以下のようになります。
空欄 : 接続でき、日本語全角文字が正しく表示される
sjis : エラーとなり接続できない
cp932 : 接続でき、日本語全角文字が正しく表示される
utf8 : 接続でき、日本語全角文字が文字化けする
実際に運用中のシステムのクライントはODBC接続をしており、クライアント
端末側では上記の「空欄」の設定となっています。
###補足情報(言語/FW/ツール等のバージョンなど)
Master側で出力された段階ですでに文字化けの状態になっているのだと
思いますので。
サーバOS : Windows Server 2008 R2
DB : MySQL Server 5.6
クライアントOS : Windows7
クライアントからの接続方法 : ODBC
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/09 08:19
2017/08/09 09:59
2017/09/12 00:15