2009-02-26 4 views
3

ColdFusionとMySQLでいくつかのテストを行ってきましたが、ちょっと困っています。私たちは/etc/my.cnfファイルで設定できるさまざまな 'sql-mode'フラグがあることを知っています。これは、定義されたモードに応じて、MySQLが特定の方法で動作するようにします。 '--sql-mode ='フラグを使用してMySQLを起動するたびに、これらのフラグを設定することもできます。MySQL/ColdFusion 8:sql-mode

/etc/my.cnfでは、 'sql-nodes = ""'を追加してmysqlを再起動したので(/etc/init.d/mysqld restart)モードが定義されていない(コメントアウトされていた) )。我々が設定されているものをモード確認するためにMySQLのコマンドラインに行くたびに、ここでの出力があります:

mysql> SELECT @@GLOBAL.sql_mode; 
+-------------------+ 
| @@GLOBAL.sql_mode | 
+-------------------+ 
|     | 
+-------------------+ 
1 row in set (0.00 sec) 

mysql> SELECT @@SESSION.sql_mode; 
+--------------------+ 
| @@SESSION.sql_mode | 
+--------------------+ 
|     | 
+--------------------+ 
1 row in set (0.00 sec) 

これは、我々が行っているものです何のモードが存在しないことを私に伝えます。


SELECT @@GLOBAL.sql_mode; 
[empty string] 


SELECT @@SESSION.sql_mode; 
STRICT_TRANS_TABLES 

これは、グローバルSQLモードが空であることを示し、セッションのSQLモードが「STRICT_TRANS_TABLES」に設定されている間:しかし、ColdFusion 8の中で同じことをやって、我々は以下を参照してください。それは私たちが望まないものです。

これでColdFusionでセッションSQLモードが空になるように設定してから、何か他のことをすると効果が得られますが、すべてのクエリに移動して追加する必要はありません。

/etc/init.d/mysqldスクリプトを調べて、どこにモードを設定できるかを確認できましたが、何も見えませんでした。

皆さんは何が起こっているのかについてのご意見やご意見はありますか? ColdFusionがどこかに設定しているかのようですが、ColdFusion Administratorにはこれを設定するものは何もありません。

答えて

5

私はこれに少し研究を行なったし、それがJavaまたはJDBCのいずれかとの互換性の問題だように見えます:

ドライバが 切り捨てチェック上のJDBC準拠を強制するために有効にSTRICT_TRANS_TABLESモードになっている必要があります。

あなたのsql_modeの一部としてSTRICT_TRANS_TABLESを使用できない場合は、URLの設定 パラメータとして「偽jdbcCompliantTruncation =」を追加することにより、 切り捨てチェックを無効にする必要があります。

はこちらをご覧ください: http://bugs.mysql.com/bug.php?id=23371ベン・ドゥームが言ったことに基づいて

1

私の推測は、CF/JDBC接続のどこかでその情報がキャッシュされているということです。 CFを再起動したり、新しいデータソースを追加して何が起こったか見てみましたか?

+0

Coldfusion 8を複数回再起動しました。 ColdFusion Administratorとadminapi CFCの両方を使用して、複数のデータソースを追加しました。 私の唯一の選択肢は、間違っていることを教えてくれるようにAdobe $ 250を支払うことです。 UGH –

+1

うまくいけばBen Doomの答えがこれの後に来てそれを解決しましたか? –

0

、あなたは異なる結果を得るかどうかを確認するためにMySQLのMySQLのMyODBCをドライバーを使用してデータソースを設定しようとする場合があります。