1

CF10、win2008、IIS7.5をmysql5.6でセットアップしました。しかし、このエラーが発生しています。

Error Executing Database Query.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT

このエラーは、クエリに「LIMIT」を明示的に設定すると削除されます。

(コメントからの更新)

次に例を示します。

<cfquery name="dds" datasource ="#Request.Datasource#"> 
    SELECT * 
    FROM   tblaccounts 
    LIMIT 100 
</cfquery> 

私の調査によると、これはmysql5.6の新しいバージョンとの非互換性です。

4

5 に答える 5

16

上記の回答から詳細を借りて:

同じ問題が発生し、JDBCファイルを更新することで修正されました。ColdFusion10はMySQL5.0および5.1のみをサポートしているため、上記のようにコネクタを更新する必要があります。

WindowsマシンでJDBCコネクタを更新するには、次のようにします。

  1. 上記のリンクから.zipコネクタを入手します
  2. zipアーカイブを開き、mysql-connector-java-5.1.23-bin.jarを見つけます
  3. この.jarファイルをC:\ ColdFusion10 \ cfusion \lib\にコピーします
  4. サービスを開く([スタート]>[コントロールパネル][オプション]>[管理ツール]>[サービス])
  5. 「ColdFusion10アプリケーションサーバー」サービスを停止/開始します

新しい.jarがColdFusionによって認識されていることを確認するには、ColdFusion管理者にログインし、[サーバー設定]の下の[設定の概要]をクリックします。「mysql」を検索します。「CFサーバーのJavaクラスパス」セクションに.jarファイルが表示されます。データソースを再設定する必要はありません。これらの変更は自動的に適用されます。

于 2013-02-27T17:58:21.527 に答える
2

私が理解していることから、別のオプションは、JDBCドライバーを最新のMySQLJDBCドライバーに更新することです。最新のJDBCドライバーの使用方法については、こちらを参照してください:(手順は少し古いかもしれませんが、それでもほぼ同じように機能するはずです)。

参考までに、ColdFusion10はMySQL5.0および5.1のみをサポートします

于 2013-02-25T18:18:01.013 に答える
1

クラークに感謝します-CF9でも同じ問題が発生しました

これは実際にはCF9にも当てはまります。ステップ3は次のとおりです。この.jarファイルをC:\ ColdFusion9 \ lib \にコピーします。ステップ3a古いドライバーの名前を変更しますmysql-connector-java-commercial-5.1.11-bin.jar.oldそうしないと、ドライバーが競合する可能性があります。(前に起こった)

アップデート後、バグはなくなったようです。:)

于 2013-04-28T21:45:10.903 に答える
1

MySQL5.6がColdFusion10update 11でサポートされるようになりました。詳細はこちら: http: //helpx.adobe.com/coldfusion/kb/coldfusion-10-update-11.html

于 2013-07-10T18:08:31.863 に答える
0

MySQLはかなり前に非推奨になりました。ドキュメントSET OPTIONを参照してください。5.6で削除されました。OPTIONステートメントなしでSETを使用する必要があります。

SET SQL_SELECT_LIMIT = 100;

あなたがやりたいことをします。

これにより、単一接続のデフォルトが設定されることに注意してください。後続のクエリが同じ接続を使用するようにするには、それらを<cftransaction>

<cftransaction>
  <cfquery name="tmp" datasource ="#Request.Datasource#"> 
  SET SQL_SELECT_LIMIT = 100;
  </cfquery> 
  <cfquery name="dds" datasource ="#Request.Datasource#"> 
  SELECT * 
  FROM tblaccounts;
  </cfquery> 
</cftransaction>

別の方法は、データソースに対して複数のクエリを有効にすることですが、セキュリティ上の理由から、これはお勧めしません。

于 2013-02-25T09:24:28.323 に答える