MySQL を使用する場合、SQL_MODE 設定を変更する必要があることがよくあります。このモードは、さまざまな SQL 動作とパーサー構成を制御し、データ検証、トランザクション処理などの要素に影響します。
複数のモードを設定するための構文SET コマンドを使用した SQL_MODE は正しいです:
SET GLOBAL SQL_MODE='NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLE','NO_AUTO_CREATE_USER','NO_ENGINE_SUBSTITUTION'
異なるユーザーを使用して UNC 値でデータベースを更新するようなシナリオに直面した場合、NO_BACKSLASH_ESCAPES のグローバル モードを設定すると、セッション設定に関係なく、すべてのユーザーが確実に影響を受けるため、合理的です。
残念ながら、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 サイトの他の関連記事を参照してください。