2013-05-10 8 views
6

、my.cnfの中で私が持っている:`不明な変数 'sql-mode = ANSI'を修正するには? MySQLの5.5.27使用

unknown variable 'sql-mode=TRADITIONAL' 

MySQLのドキュメントServer SQL Modesは、そのオプションを示し、なぜそれをしません:

[mysql] 
sql_mode=ANSI 

mysqlのコンソールを開始すると、私が取得します作業?

(それが助け場合、私はOSXライオンの午前)

また、here is a pastebin showing the things another person has tried, with no solution。あなたの代わりにsql-mode名を使用する必要があります設定ファイルで

答えて

7

[mysqld]セクションにそれを置く必要がありますそれが動作していない理由は、それがクライアントではなくmysqldの引数であるからです。私はあなたが代わりにこれを行うことができる別の方法を思いついた。このようなものであることをユーザーのmy.cnf i.e. ~/.my.cnfを編集します。

[client] 
init-command="set sql_mode='TRADITIONAL'" 
+0

init-commandを 'mysql --init-command =" set sql_mode = 'TRADITIONAL' "'のようなコマンドに移動することもできます。これにより、my.cnfを編集することなくエイリアスとして行うことができます。 – cogsmos

+1

ありがとうございます。これは接続しているが、サーバ全体では機能しないクライアント(my.cnfの '[mysqld]')で動作します。 – Zabba

+0

mysqldプロセスを起動するスクリプトが必要です。私はそれがMac上でどのように起動するかに慣れていないが、Linuxでは/etc/init.d/のどこかにあるだろう。スクリプトを見つけることができれば、コマンドラインに--sql-mode = XXXを追加するだけでよいのです。 – cogsmos

2

http://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_sql-mode

を(ダッシュ、アンダースコアではない)と@cogsmosが指摘したように、私はかなりよ

+0

それも試しましたが、うまくいきません。同じエラー。また、変数はドキュメントから '変数名sql_mode'です。 'sql-mode'は' mysql --sql-mode = ANSI'のようにコメント行にあるときに使われます(これもうまくいきません)。 – Zabba

+0

@Zabba:これは変数ではないので、オプションファイルの指示文です。 'Option-File Format \t sql-mode'です。それは動作するはずです。 'sql-mode'で正確な設定を表示し、正確なエラーメッセージ – zerkms

+0

あなたが言ったようにして、サーバを再起動しました。クライアントはエラーなしで接続しました。しかし、私はUPDATE SQLを実行すると、オプションは何の効果もないようですね。 (300文字を255 charのvarcharフィールドに更新しようとしていますが、エラーは発生しません) – Zabba

12

sql-mode[mysqld]セクションでは、ない[mysql]セクションにする必要があります。 sql-mode=ANSI[mysqld]セクションに移動すると正常に機能します。

関連する問題