Maison  >  Article  >  base de données  >  Comment désactiver le mode strict dans MySQL

Comment désactiver le mode strict dans MySQL

青灯夜游
青灯夜游original
2022-01-04 16:35:369058parcourir

Comment désactiver le mode strict de MySQL : 1. Ouvrez et modifiez le fichier de configuration MySQL "my.cnf" ; 2. Recherchez le mot-clé "sql-mode" et commentez les instructions pertinentes de "sql-mode" ; . Utilisez la commande " service mysqld restart " pour redémarrer mysql.

Comment désactiver le mode strict dans MySQL

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version mysql8, ordinateur Dell G3.

Vérifiez si Mysql est en mode strict :

Ouvrez le fichier de configuration MySQL my.cnf (my.ini pour windows).

Recherche sql-mode S'il est introuvable, cela signifie un mode non strict.

La recherche signifie que le mode strict est activé, par exemple :

sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Activer et désactiver le mode strict

Activer le mode strict :

vi /etc/my.cnf #编辑mysql配置文件

搜索sql-mode关键字,若没有,在文件尾添加一行
替换成:
sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

service mysqld restart 重启mysql

Désactiver le mode strict :

vi /etc/my.cnf #编辑mysql配置文件

搜索sql-mode关键字。注释sql-mode相关语句
#sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

service mysqld restart 重启mysql

Connaissances étendues : comparaison stricte entre le mode et le mode non strict (mode détendu)

  • Ne prend pas en charge l'insertion de valeurs nulles dans des champs non nuls
  • Ne prend pas en charge l'insertion de "valeurs dans des champs auto-croissants
  • Ne prend pas en charge les champs de texte avec des valeurs par défaut

Exemple :

CREATE TABLE `test_table` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(20) NOT NULL,
 `content` text NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

1 champ non nul insérer un test de valeur nulle

Insérer un enregistrement, la valeur du nom est nulle

Exécuté en mode non strict

mysql> insert into test_table(content) values('51ask');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from test_table;
+----+------+------------+
| id | name | content    |
+----+------+------------+
|  1 |      | 51ask      |
+----+------+------------+
1 row in set (0.00 sec)

#执行成功

Exécuté en mode strict

mysql> insert into test_table(content) values('51ask');
ERROR 1364 (HY000): Field 'name' doesn't have a default value

#执行失败,提示字段name不能为null值

Les trois points ci-dessus ne sont plus un par un. Faites le test

On peut voir que l'utilisation du mode strict de MySQL peut rendre les données plus sécurisées et plus strictes. cela réduit la compatibilité du stockage de données vides. Il est recommandé que l'environnement de développement utilise le mode strict pour améliorer la qualité du code et la protection des données

Recommandations associées : tutoriel vidéo mysql, "Linux. tutoriel"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn