MySQLエラー:*** is not in GROUP BY(Ubuntu Linux) #639
Replies: 3 comments
-
MySQL 5.7では「sql_mode」のデフォルト設定に,ONLY_FULL_GROUP_BYが加わりました。この設定では,現在のKH Coderは動作しません。 ONLY_FULL_GROUP_BYを抜くことで,5.6までの設定に近い形にMySQLサーバーの設定を変更していただくのが早いかと思います。5.6までの設定に近づくだけなので,他への影響はあまり無さそうに思います。 sql_modeの変更については,こちらのページがお詳しいです。 |
Beta Was this translation helpful? Give feedback.
-
先ほど上のように書いたのですが,MySQLサーバーの設定を変更しない,別の解決法を思いつきました。 kh_lib/mysql_exec.pmをテキストエディタで開き,次の行を検索してください。現在のバージョンでは87行目にあると思います。
この行の下に1つ行を付け加えて,以下のようにして上書き保存してください。
こうすれば,MySQLサーバーの設定を変更しなくてもKH Coderが動作すると思います。 |
Beta Was this translation helpful? Give feedback.
-
抽出語リストの出力まで成功しました! 回答いただいた上記二つの方法を両方試しました。 1. MySQLの設定を変更する方法 教えていただいたページを参考にSQLモードについての記述を調べてみたところ、 strict_mode というのがMySQL ver. 5.7からデフォルト導入されていて、それを解除すればよいことがわかりました。 新しいファイルをエディタで作り、
その中に、下記の二行を書き加えファイルを保存する。
MySQLを再起動
これでkh_coder.plの起動から試したところ動きました。 2. ソースファイルを加筆する方法 これも動きました。 当初よりMySQLのデフォルトは触りたくなかったので、 KH Coder のセッションだけを変更する1の方法を採用しました。 ありがとうございます。 |
Beta Was this translation helpful? Give feedback.
-
■お使いのKH Coderのバージョン
■KH Coderのインストール先フォルダ(解凍先フォルダ)
■どんなエラー・不具合・問題ですか?
テスト用のkokoro2.csvを読み込んで、前処理を実行したらしばらくして、SQLエラーが出て強制終了。
エラーメッセージを参考に調べたところ、SQLのSELECT句の中に、GROUP_BY句で指定されていない変数(おそらく hinshi.name のこと?)が入っているのが要因らしいことはわかりました。
参照したサイト
https://chaika.hatenablog.com/entry/2019/02/19/120000
https://www.p-nt.com/s/technicblog/archives/204
上記サイトを参照すると、ソースを触るかSQLのオプション設定を変える方法があるようなのですが、(1)ソースを触るだけの自力がない、(2)オプション設定を変えると他に影響が出るのでは、という問題にぶつかりました。解決方法につき教えていただけると幸いです。
■どのように操作すればその問題を再現できますか?
■エラー・メッセージ
■コンソール・ウィンドウの表示内容(Macではターミナルの表示内容)
■その問題はチュートリアルの漱石「こころ」データでも同様に発生しましたか?
■その問題を再現できるファイル(群)
■お使いのOS
Beta Was this translation helpful? Give feedback.
All reactions