ホームページ > データベース > mysql チュートリアル > MySQL でグローバル SQL_MODE を永続的に設定するにはどうすればよいですか?

MySQL でグローバル SQL_MODE を永続的に設定するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-01 17:00:12
オリジナル
686 人が閲覧しました

How to Permanently Set Global SQL_MODE in MySQL?

MySQL でのグローバル SQL_MODE の設定: ガイド

MySQL を使用する場合、SQL_MODE 設定を変更する必要があることがよくあります。このモードは、さまざまな SQL 動作とパーサー構成を制御し、データ検証、トランザクション処理などの要素に影響します。

コマンド構造は正しいですか?

複数のモードを設定するための構文SET コマンドを使用した SQL_MODE は正しいです:

SET GLOBAL SQL_MODE='NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLE','NO_AUTO_CREATE_USER','NO_ENGINE_SUBSTITUTION'
ログイン後にコピー

セッションとグローバルの利点モード

  • セッション モード: 現在のセッションにのみ影響し、セッション終了時にリセットされます。一時的またはユーザー固有の SQL_MODE 設定に最適です。
  • グローバル モード: 変更されるまで、後続のすべてのセッションに影響します。すべてのユーザーに適用されるシステム全体の永続的な構成に適しています。

グローバル モードとセッション モード

異なるユーザーを使用して UNC 値でデータベースを更新するようなシナリオに直面した場合、NO_BACKSLASH_ESCAPES のグローバル モードを設定すると、セッション設定に関係なく、すべてのユーザーが確実に影響を受けるため、合理的です。

グローバルの設定SQL_MODE Permanently

残念ながら、SET を使用したグローバル設定の直接変更は永続的ではなく、MySQL の再起動後にリセットされます。変更を永続的にするには、設定ファイル (/etc/mysql/my.cnf) でモードを設定します。

[mysqld]
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
ログイン後にコピー

新しい MySQL バージョン (例: 5.7.8 ) の場合は、次の構文を使用します。

[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
ログイン後にコピー

結論

システム全体の永続的な SQL_MODE 設定については、すべてのユーザーに影響を与えるため、グローバル モードを設定することをお勧めします。構成ファイルに永続的な変更を加えて、目的の SQL 動作がセッション間で一貫していることを確認する必要があります。

以上がMySQL でグローバル SQL_MODE を永続的に設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート