3

私は現在、Windows 10でmysqlサーバー5.6を使用しています。mysqlを使用しているときに、「次の列にデフォルト値がありません」というようなエラーが表示され続けます。 sql_mode。現在は

 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

これは、「mysql server 5.6」フォルダーの「my-default.ini」ファイルから取得しました。sql_modeを永続的に変更したい場合は、「my-default.ini」ファイルを使用して行う必要があるという他のいくつかの回答を読みました。だから私がしたことは、メモ帳を管理者として実行し、ブラウズして「my-default.ini」ファイルを開きました。

  c:\programs files (x86)\mysql\mysql server 5.6\my-default.ini

ファイルを開いたときに、最後の行を変更しました。

  sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

  sql_mode=

次に、ファイルを保存して閉じました。次に、タスク マネージャーを使用して、SQL サーバーを再起動しました。

  task manager >> services >> mysql56

これは、sql_mode を永続的に変更するプロセス全体です。「my-default.ini」ファイルを見ると、最後の行がまだ変更されています。しかし、コマンド ラインから mysql にログインし、次のコードで sql_mode を表示すると:

  select @@sql_mode;

私のsql_modeは

  STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

エラーが消えるように、これらすべてを (永久に) 削除したいと思います。次を使用して、コマンドラインから sql_mode を変更しようとした場合:

  set @@global.sql_mode="";

うまくいきましたが、MySQL を再起動すると、すべてが以前の状態に戻りました。

誰かが私が間違っていることを教えてもらえますか? この問題を解決する別の方法がある場合。

4

4 に答える 4

4

更新: 申し訳ありませんが、Windows 10 を使用していたことを忘れていました。Windows でこの問題に対処する方法がわかりませんが、その設定にコピーmy-default.iniして変更してみてください。my.ini混乱させて申し訳ありません。


sql_mode を何も設定できないかどうかはわかりませんが、/etc/mysql/my.cnfファイルの値を変更してみてください。そのフォルダー/ファイルが存在しない場合は、作成して、次のように設定してみてくださいsql_mode[mysqld]

[mysqld]
sql_mode=

に設定しただけで、これと同じことをしsql_modeましたNO_ENGINE_SUBSTITUTION

于 2016-04-03T14:55:36.090 に答える
0

MySQL Workbench がインストールされている場合は、インスタンスのベース ディレクトリのサーバー ステータスを確認します。変更を保持する my.ini ファイルがそこにあります。

于 2016-07-28T03:13:45.947 に答える