クライアントのウェブサイトをあるWHM/cPanelから別のWHM/cPanelに移行しているときに、SQLエラー「 Incompatible with sql_mode =only_full_group_by 「。以下は完全なエラーメッセージです。
SELECT list is not in GROUP BY clause and contains nonaggregated column 'dbname.p.picfile' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_byと互換性がありません
解決策: MySQL 5.7.5+は、 GROUP BY
を変更しました SQL99に準拠する動作(古いバージョンは準拠していません)であり、それがエラーの理由でした。
回避策は、MySQL構成を編集して、 ONLY_FULL_GROUP_BY
を削除することです。 sql_mode
のオプション 。これにより、 GROUP BY
が変更されます 動作をMySQL5.7.5以前の動作に戻します。
共有ホスティングを使用している場合、 sql_mode
を変更することはできません。 環境レベルで。
ONLY_FULL_GROUP_BY
を削除します my.cnf
で ファイル
MySQL構成ファイルmy.cnf
にアクセスできる場合 、ファイルを開きます:
# vim /etc/mysql/my.cnf
ファイルの最後に次の行を追加します。
[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
MySQLサービスを再起動します:
# systemctrl restart mysqlONLY_FULL_GROUPBYを無効にする
これにより、システムのすべてのユーザーに対してONLY_FULL_GROUP_BYが無効になります。
ONLY_FULL_GROUP_BY
を削除します WHM/cPanelで
ドメインがcPanel(共有ホスティング)上にある場合は、ホスティングプロバイダーに連絡して同じものを更新する必要があります。
WHMにアクセスできる場合は、 PHPMyAdmin
にアクセスします。 SQL Services
の下 以下に示すようにWHMから:
変数
をクリックします メニューからSQL_MODE
を検索します
編集ボタンをクリックして、削除 ONLY_FULL_GROUP_BY
を変更します 。編集したら、[保存コード>]をクリックします 。
以上です!