GNU/Linux >> Linux の 問題 >  >> Linux

sql_mode =only_full_group_by[修正]と互換性がありません

クライアントのウェブサイトをある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 mysql
ONLY_FULL_GROUPBYを無効にする

これにより、システムのすべてのユーザーに対してONLY_FULL_GROUP_BYが無効になります。

ONLY_FULL_GROUP_BYを削除します WHM/cPanelで

ドメインがcPanel(共有ホスティング)上にある場合は、ホスティングプロバイダーに連絡して同じものを更新する必要があります。

WHMにアクセスできる場合は、 PHPMyAdminにアクセスします。 SQL Servicesの下 以下に示すようにWHMから:

変数をクリックします メニューからSQL_MODEを検索します

編集ボタンをクリックして、削除 ONLY_FULL_GROUP_BYを変更します 。編集したら、[保存]をクリックします 。

以上です!


Linux
  1. MySQLWorkbenchを使用してMySQLでデータベースを作成する方法

  2. Nagios3.4でMySQLサーバーを監視する

  3. RsyslogとMySQLを使用してLogAnalyzerをセットアップする方法

  1. 通信リンク障害の例外–MySQLを使用したWSO2[修正]

  2. MySQLデータベースを使用してWSO2APIManagerを構成する

  3. MySQLでパスワードによってIDENTIFIEDでGRANTを使用中にエラーが発生しました

  1. Phpmyadminと一緒にMysqlをインストールする方法は?

  2. cPanelMySQLデータベースの操作

  3. CentOS6でMySQLをMariaDBに置き換える方法