1. Hem
  2. Databaser
  3. Hur inaktiverar jag strict mode för MySQL?

Hur inaktiverar jag strict mode för MySQL?

Strict mode för MySQL förhindrar ett stort antal skadliga kommandon och liknande från att köras, men ibland kan man behöva köra någon databasfråga (query) som ogillas av strict mode, även om kommandot i sig inte är skadligt. Ett exempel är om man vill lägga in datumet 0000-00-00 i en datumformaterad kolumn så blockeras detta normalt av NO_ZERO_DATE.

I den här guiden går vi igenom hur du tillfälligt går runt strict mode på några olika sätt.

Inaktivera för MySQL via cli

För att nå MySQL via cli (command line interface) behöver du ansluta till ditt webbhotellkonto via SSH eller använda Terminalen inne på cPanel.

Väl inloggad går du in i MySQL genom att skriva följande:

$ mysql -u DITT_MYSQL-ANVÄNDARNAMN -p

Byt ut DITT_MYSQL-ANVÄNDARNAMN mot rätt användarnamn (antingen ditt cPanel-användarnamn eller ett namn på en användare kopplad till databasen som du vill agera på). Efter du tryckt på Enter kommer du bli tillfrågad om lösenordet tillhörande användaren.

För att se nuvarande mode som MySQL använder, kör detta kommando:

mysql> SELECT @@sql_mode;

Ett exempel på output du kan få:

+------------------------------------------------------------------------------------------------------------------------+
| @@sql_mode |
+------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

För att stänga av strict mode använder du detta kommando:

mysql> SET sql_mode = '';

Strict mode är nu avstängt tills du loggar ut från MySQL och du kan köra dina queries obehindrat.

Inaktivera för phpMyAdmin

Om du föredrar att arbeta med MySQL via phpMyAdmin så kan du avaktivera strict mode även här. Du når phpMyAdmin via cPanel för ditt webbhotellkonto, så börja med att logga in där. Klicka sedan på ikonen för phpMyAdmin för att komma igång.

Klicka på databasen i menyn ute till vänster för att välja vilken du vill arbeta med.

Manuella SQL-kommandon

Gå på MySQL enligt ovan och vidare in på fliken SQL.

Här har du nu ett inmatningsfält där du kan köra dina MySQL-kommandon. Om du anger följande framför/före dina kommandon kommer strict mode vara avstängt när kommandot körs. Det måste alltså anges före varje kommando som du kör.

SET SESSION sql_mode = ''; X

Byt ut X mot resten av din query.

Insert via menyn

Du kan även göra databasoperationer såsom Insert direkt via det grafiska gränssnittet i phpMyAdmin. För att göra det, gör som ovan och klicka på databasnamnet ute till vänster.

Klicka sedan på tabellen som du vill lägga in data i.

Gå därefter in på fliken Insert högst upp.

Mata in datan du vill lägga in i tabellen och klicka på knappen Go.

Du kommer nu få ett felmeddelande om din input bryter mot strict mode:

Klicka på Edit för att kunna korrigera kommandot som kommer köras och lägg in följande före kommandot som phpMyAdmin genererat:

SET SESSION sql_mode = ''; X

X i kommandot ersätts av resten av phpMyAdmins kommando.

Hjälpte den här guiden dig?

Relaterade guider

Behöver du mer hjälp?
Kan du inte hitta lösningen på ditt problem? Då kan du kontakta oss via e-post, chatt och telefon!
Kontakta oss