Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk mematikan mod ketat dalam mysql

Bagaimana untuk mematikan mod ketat dalam mysql

青灯夜游
青灯夜游asal
2022-01-04 16:35:369065semak imbas

Cara untuk mematikan mod ketat mysql: 1. Buka dan edit fail konfigurasi mysql "my.cnf" 2. Cari kata kunci "sql-mode" dan ulas pernyataan yang berkaitan "sql- mod"; 3. Gunakan perintah "service mysqld restart" untuk memulakan semula mysql.

Bagaimana untuk mematikan mod ketat dalam mysql

Persekitaran pengendalian tutorial ini: sistem linux5.9.8, versi mysql8, komputer Dell G3.

Semak sama ada Mysql mempunyai mod ketat didayakan:

Buka fail konfigurasi MySQL my.cnf (my.ini untuk tingkap) .

Cari mod-sql Jika tidak ditemui, ini bermakna mod tidak ketat. Jika

dicari, ini bermakna mod ketat dihidupkan, contohnya:

sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Hidupkan dan matikan mod ketat

Hidupkan mod ketat:

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

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

service mysqld restart 重启mysql

Matikan mod ketat:

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

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

service mysqld restart 重启mysql

Kembangkan pengetahuan: perbandingan mod ketat dan mod tidak ketat Mod (mod santai)

  • Tidak menyokong memasukkan nilai nol ke dalam medan bukan nol
  • Adakah tidak menyokong memasukkan "nilai ke dalam medan yang meningkat sendiri
  • Tidak menyokong nilai lalai untuk medan teks

Contoh:

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 ujian nilai nol sisip medan bukan nol

Sisipkan Rekod, nilai nama adalah batal

Dilaksanakan dalam mod tidak ketat

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)

#执行成功
Dilaksanakan dalam mod ketat

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

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

Tiga point di atas tidak lagi Lakukan ujian satu persatu

Dapat dilihat menggunakan mod ketat mysql boleh. menjadikan data lebih selamat dan ketat Kelemahannya ialah ia mengurangkan keserasian storan data yang kosong 🎜>Cadangan berkaitan: tutorial video mysql

, "

Tutorial Linux"

Atas ialah kandungan terperinci Bagaimana untuk mematikan mod ketat dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn