MySQL での SQL モードの表示と設定の詳細な説明

MySQL での SQL モードの表示と設定の詳細な説明

MySQL での SQL モードの表示と設定

MySQL はさまざまなモードで実行でき、さまざまなシナリオでさまざまなモードで実行できます。これは主にシステム変数 sql_mode の値によって異なります。この記事では、主に Mac システムでのこの値の表示と設定について紹介します。

各モードの意味や機能はインターネットで簡単に調べられるので、この記事では紹介しません。

有効範囲と時間に応じて、セッションレベル、グローバルレベル、構成(永続的に有効)レベルの 3 つのレベルに分けられます。

セッションレベル:

チェック-

@@session.sql_mode を選択します。

改訂-

@@session.sql_mode='xx_mode' を設定します
セッション sql_mode='xx_mode' を設定します

セッションは省略可能で、デフォルトのセッションは現在のセッションに対してのみ有効です。

グローバルレベル:

チェック-

@@global.sql_mode を選択します。

改訂-

グローバル sql_mode を 'xx_mode' に設定します。
@@global.sql_mode='xx_mode' を設定します。

高度な権限が必要で、次の接続にのみ有効です。現在のセッションには影響しません (テスト済み)。MySQL の再起動時に構成ファイル内の対応する値が再読み取りされるため、MySQL の再起動後は無効になります。永続的にしたい場合は、構成ファイル内の値を変更する必要があります。

構成の変更(永続的):

vi /etc/my.cnfを開く

以下に追加

[mysqld]
sql-mode = "xx_mode"

注意: [mysqld] を追加する必要があり、sql-mode の中央にはアンダースコアではなく「-」が入ります。

保存して終了し、サーバーを再起動すると、変更が永続的に有効になります。

Mac には MySQL の設定ファイルがインストールされていないため、手動で追加する必要があります。

追伸

最後に、Mac での MySQL の起動、停止、再起動について少し補足します。

主な方法は2つあります。

1 つは、「システム環境設定」に対応する MySQL パネルをクリックして管理を実現することです。

2番目はコマンドライン方式です。

MySQL 関連の実行スクリプトのうち、最もよく使用される 2 つは次のとおりです。

ローカルディレクトリ
ローカルのmysqlディレクトリ

mysql.server はサーバーの起動と停止を制御します。

mysql.server の開始|停止|再起動|ステータス

mysql は主にサーバーに接続するために使用されます。

mysql -uroot -p **** -h **** -D **

sudo 権限が必要なものもありますが、環境変数に関連パスを追加することで記述を簡略化できます。追加方法についてはここでは紹介しません。

知識ポイントの拡張:

厳密モードの説明

MySQL 5.0 以降の厳密モード (STRICT_TRANS_TABLES) の制限に従って、次のようになります。

1) NULLでないフィールドにNULL値を挿入することはサポートされていません

2) 自動増分フィールドに「」値を挿入することはできませんが、null値を挿入することはできます。

3). テキストフィールドのデフォルト値をサポートしていません

次のコードを見てください: (最初のフィールドは自動インクリメントフィールドです)

$query="デモ値に挿入('','$firstname','$lastname','$sex')";

上記のコードは非厳密モードでのみ有効です。

コード

$query="デモ値に挿入(NULL,'$firstname','$lastname','$sex')";

上記のコードは厳密モードでのみ有効です。空の値 '' を NULL に置き換えます。

以下もご興味があるかもしれません:
  • MySQL sql_mode の変更が有効にならない理由と解決策
  • MySQL sql_modeクエリと設定の詳細な説明
  • MySQL の sql_mode モード例の詳細な説明
  • Django2 は MySQL に接続し、モデルテストの例を分析します。
  • MySQL sql_modeの適切な設定に関する詳細な説明
  • MySQL sql_mode の分析と設定の説明
  • MySQL 5.7 の sql_mode のデフォルト値によって生じる落とし穴と解決策
  • MySql バージョンの問題に対する完璧なソリューション sql_mode=only_full_group_by
  • MySQL 5.7.9 バージョンの sql_mode=only_full_group_by 問題を解決する
  • MySQL での SQL モードの使用法の詳細な説明
  • mysql sql_mode="" 関数の説明
  • MySQL sql_mode の使用に関する詳細な説明

<<:  Nginx を使用して IP アドレスが悪意を持って解決されるのを防ぐ方法

>>:  JavaScript における型の必須および暗黙的な変換の詳細な説明

推薦する

Nodejs プラグインと使用方法の概要

このチュートリアルの動作環境: Windows 7 システム、nodejs バージョン 12.19....

MySQL ロックブロッキングの詳細な分析

日常のメンテナンスでは、スレッドがブロックされることが多く、データベースの応答が非常に遅くなります。...

MySQL 最適化 Zabbix パーティション最適化

zabbix を利用する上での最大のボトルネックはデータベースです。zabbix のデータストレージ...

配列をフラット化する 5 つの JavaScript の方法

目次1. 配列の平坦化の概念2. 実装1. 減らす2. toString と split 3. 結合...

JavaScript プロトタイプとプロトタイプチェーンの深い理解

目次1. プロトタイプとは何ですか? 2. プロトタイプ__プロト__ 4. コンストラクター5. ...

JavaScript で 24 以上の配列メソッドを手動で実装する

目次1. トラバーサルクラス1. 各2. 地図3. すべての4. いくつか5. フィルター6. 減ら...

Linux の daily_routine サンプルコードの詳細な説明

まずサンプルコードを見てみましょう: #/bin/bash cal 日付 -u echo "...

CSS3ダイヤモンドパズルはdivのみを回転し、背景画像は回転しない機能を実現します

需要背景プロジェクトはVueを使用して作成され、ビジネス要件にはパズル効果があります。デフォルトの背...

CentOS 7 に MySQL 8.0.20 データベースをインストールするための詳細なチュートリアル

関連記事: MySQL8.0.20 インストール チュートリアルとインストールの問題に関する詳細なチ...

重複リクエストを削除するAxiosのソリューションについての簡単な説明

目次1. 重複したリクエストをキャンセルする2. すべてのリクエストをクリーンアップするこのソリュー...

Tencent インタビュー: SQL ステートメントの実行が非常に遅くなる理由は何ですか? ---後悔シリーズは見ないで(推奨)

正直に言うと、この質問には MySQL のコア知識がかなり必要で、コンピュータ ネットワークの知識を...

Win10 での MySQL 8.0.16 のインストールと設定のチュートリアル

1. MySQL 8.0.16を解凍する次の図に示すように、解凍後にdadaフォルダとmy.ini構...

CSS 水平プログレスバーと垂直プログレスバーの実装コード

時々、素敵なスクロールバー効果を見るのは楽しいものです。ここでは、CSSを使用してそれを実現する方法...

独自の Docker イメージを作成して Dockerhub にアップロードする方法

1. まず、自分のdockerhubアカウントを登録します。登録アドレス: https://hub....

Vue3 トランジションアニメーションの落とし穴記録について

目次背景問題の場所さらなる分析要約する背景私のコース「Vue 3 エンタープライズレベルの音楽アプリ...