sql >> Databasteknik >  >> RDS >> Mysql

MySQL:Ställer in sql_mode permanent

MySQL sql_mode "TRADITIONAL" , a.k.a. "strikt läge", definieras av MySQL-dokumenten som:

Så här säkerställer du att ditt sql_mode är inställt på "TRADITIONAL" .

Kontrollera först din nuvarande inställning:

mysql
mysql> SELECT @@GLOBAL.sql_mode;
+-------------------+
| @@GLOBAL.sql_mode |
+-------------------+
|                   |
+-------------------+
1 row in set (0.00 sec)

Detta returnerade tomt, standard, det är dåligt:​​ditt sql_mode är inte inställt på "TRADITIONELL".

Så redigera konfigurationsfilen:

sudo vim /etc/mysql/my.cnf

Lägg till den här raden i avsnittet märkt [mysqld] :sql_mode="TRADITIONAL" (som fancyPants påpekade)

Starta sedan om servern:

sudo service mysql restart

Kontrollera sedan igen:

mysql
mysql> SELECT @@GLOBAL.sql_mode;
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode                                                                                                                                    |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Framgång! Du är gyllene nu.



  1. Varför inga fönsterfunktioner i where-satser?

  2. Vad är nytt i MySQL Galera Cluster 4.0

  3. Hur returnerar jag heltal och numeriska kolumner från MySQL som heltal och numeriska i PHP?

  4. MS-Access Recordset och Class Module