ここでは、MySQL の使用中に発生するいくつかの問題とその解決策を示します。 sql_mode=only_full_group_by はグループ クエリ エラーを引き起こします 質問 #1 - SELECT リストの式が GROUP BY 句内になく、非集計列が含まれているため、sql_mode=only_full_group_by と互換性がありません。 解決 # 問題を解決するために正しいsql_modeを設定します # MySQLにログインします sudo mysql -hlocalhost -uroot -p123123 SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); MySQL設定ファイルを変更し、MySQLサービスを再起動することもできます。 # MySQL 設定ファイルを開く sudo vim /etc/mysql/conf.d/mysql.cnf # 一番下に次の文を追加します sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # その後、再起動します。sudo service mysql restart 詳しい説明 ONLY_FULL_GROUP_BY: GROUP BY 集計操作の場合、SELECT 内の列が GROUP BY に表示されない場合は、その列が GROUP BY 句にないため、この SQL は無効です。 テーブルデータをクリア 問題: データの移行やデータの修復を実行する場合、データ テーブルをクリアまたはリセットする必要があることがよくあります。 解決 TRUNCATE TABLE table_name コマンドを使用して、データ テーブルをリセットできます。このコマンドの本質は、テーブルを削除してから再構築することです。制約のあるテーブルの場合、これは機能しません。最初に外部キー制約を無効にしてから、削除を実行する必要があります。 # 最初の解決策SELECT @@FOREIGN_KEY_CHECKS; # 単一署名の外部キー制約コマンドを表示しますSET FOREIGN_KEY_CHECKS=0; # 最初に外部キー制約を無効にしますTRUNCATE TABLE table_name; # 次にテーブルをリセットします# 2 番目の解決策が推奨されますDELETE FROM table_name; # すべてのデータを削除するには、where 条件なしでコマンドを削除しますALTER TABLE table_name AUTO_INCREMENT=1; # 増分の初期値をリセットします MySQLはメモリを大量に消費します サーバー メモリが 1G 以下の場合は、MySQL のデフォルト設定を変更する必要があります。そうしないと、MySQL が簡単に 400M または 800M のメモリを占有することになります。 MySQL の設定を最適化することで、メモリ使用量を削減するという目的を達成できます。設定ファイルは通常、vim の /etc/my.cnf の [[mysqld]] の下にあります。 MySQL の詳細な設定項目については、公式 Web サイトを参照してください: MySQL 公式 Web サイトの詳細設定項目。現在使用しているサーバーには、シングルコア CPU と 1G のメモリが搭載されています。 # インストルメントされたテーブルオブジェクトの最大数。ロードされるテーブルインスタンスの最大数、デフォルトは -1 適応型 performance_schema_max_table_instances = 600 # 定義キャッシュに保存できるテーブル定義の数、デフォルト -1 適応型 table_definition_cache = 400 # すべてのスレッドで開いているテーブルの数。すべてのスレッドで開くことができるテーブルの最大数。デフォルトは 2000 です。 テーブルオープンキャッシュ = 128 # innodbエンジンのキャッシュサイズ。起動に失敗した場合は、innodb_buffer_pool_size = 600Mに減らしてください。 # 共同クエリ操作に使用できるバッファサイズ(スレッド排他) join_buffer_size = 8M 設定を変更した後、設定項目を有効にするために MySQL サービスを再起動します。 現在の MySQL 構成情報は次の方法で表示できます。 # mysqlにログイン mysql -hlocalhost -uroot -pパスワード # すべてのグローバル設定を表示します。グローバル変数を表示します。 # グローバル設定ステータスを表示します。show global status; # 特定の構成項目をフィルタリングします。以下は、innodb で始まる構成項目をフィルタリングします。「innodb%」のようなグローバル変数を表示します。 MySQLの一時テーブルにはエイリアスが必要です クエリによって生成された一時テーブルの場合、後で使用されない場合でも、 as を使用してエイリアスを定義する必要があります。そうでない場合はエラーが報告されます: すべての派生テーブルには独自のエイリアスが必要です。 MySQL テーブル列名を取得する テーブル名が table_name であると仮定すると、次の 3 つのコマンドを使用してテーブルの列名を照会できます。 DESC テーブル名; DESCRIBE テーブル名; 人からの列を表示します。 以下もご興味があるかもしれません:
|
<<: JavaScript デザインパターン 責任連鎖パターン
フロントエンドのレイアウト プロセスでは、水平方向の中央揃えを実現するのは比較的簡単で、通常は ma...
この記事では、マウスでカード内外のコンテンツを切り替えるためのjsの具体的なコードを紹介します。具体...
免責事項:プロジェクトでは ROS 環境を使用する必要があるため、これは Ubuntu 20.04 ...
目次1. 単一データベースのバックアップ2. 圧縮バックアップ3. マルチデータベースバックアップ4...
履歴書コード: XML/HTML コードコンテンツをクリップボードにコピー<!DOCTYPE ...
1. MySQL Community Server 5.7.16をダウンロードしてインストールします...
目次トランザクション分離レベルファントムリーディングとは何ですか?ファントムリードを排除する方法要約...
1. CSSファイルの命名規則提案: 文字、_、-、数字を使用します。文字で始まる必要があり、純粋な...
目次1. システム監視2. ファイル操作3. ネットワーク通信4. システム管理仕事で必要なLinu...
必要: docker を使用して nginx + tomcat デュアル プロセスを起動します。実際...
目次1.ダウンロード後、インストールしたいディレクトリに解凍します。 2. インストールディレクトリ...
序文:インターネット技術の継続的な発展に伴い、MySQL 関連のエコシステムはますます充実し、ますま...
この記事では、MySQL 5.7.20のインストールと設定方法を参考までに紹介します。具体的な内容は...
目次予防必要条件AWSアカウントを申請する仮想マシンの申請と有効化仮想マシンを申請するセキュリティグ...
現在このような問題が発生しています 私の状況は、QT が動かなくなってしまったため、仮想マシンを再起...