2017-10-23 18 views
0

payara(glassfish)を使用したJavaアプリケーションのメールに本文を保存してください。 2つの異なるサーバーに同じアプリケーションがありますDBサーバーのために:最初のものは最初のサーバーから同じメールがmariadbがあり、mysql5.5でない不正確な文字列

Local Exception Stack: 
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.3.qualifier): org.eclipse.persistence.exceptions.DatabaseException 
Internal Exception: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect string value: '\xEF\xBF\xBD1 h...' for column 'msg_body' at row 1 

何をスローmariadb 10.1.26(javaの1.8.0_131)は、MySQL 5.5.57(javaの1.8.0_144)を有する第二1 であります私にとって本当に奇妙なのは、2番目のサーバーでは、インポートは流れません。警告もボディも保存されません。

準備は、2台のサーバーの構成をチェックし、 両方同じfoloowingであるように思わ2つのデータベース上にまったく同じです:

- すべてのテーブルCHARACTER_SET_NAME latin1の

で-the変数の照合です

あります

collat​​ion_connectionの= utf8mb4_unicode_ci

collat​​ion_database = utf8mb4_general_ci

collat​​ion_server = utf8mb4_general_ci

このように、2つのデータベースはまったく同じconfを持っています。なぜ誰かが1つのサーバーが動作しているのか、もう1つのサーバーが動作していないのか、

+0

関連:https://stackoverflow.com/questions/11159118/incorrect-string-value-xef-xbf-xbd-for-column –

+0

ありがとうございました。どちらの場合でも、同じアプリケーションが2つのシステムで異なる動作をする理由を説明していません – user2946593

+0

アプリケーションがデータが破損していることを示すために使用される特殊なシンボルを永続化しようとしているので、MariaDBに修正が含まれていれば、そのようなデータを拒否するには、破損したデータを格納するのが危険です。 – OndrejM

答えて

0

我々はテスト のトンをしたが解決していると、「そうです」の違いは、MySQLはlatin1_swedish_ci がmariadbサーバー上で、これらの値を変更していた間、mariadb持つマシンは、utf8mb4_general_ciを持っていたデータベースサーバのグローバル変数、上にあったようです問題

関連する問題