sql_mode - ¿Cómo activar/desactivar el modo estricto de MySQL en localhost(xampp)?
set sql_mode no_auto_value_on_zero (4)
Quiero saber cómo verificar si el modo estricto de MySQL está activado o desactivado en localhost (xampp).
Si está activado entonces para qué modos y cómo desactivar.
Si está apagado entonces cómo hacerlo.
Ya seguí http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-full y https://mariadb.com/kb/en/mariadb/sql_mode/ y otros sitios relacionados también. Pero no obtuve una respuesta exacta para mi pregunta.
-> STRICT_TRANS_TABLES es responsable de configurar el modo estricto de MySQL.
-> Para verificar si el modo estricto está habilitado o no, ejecute el siguiente sql:
SHOW VARIABLES LIKE ''sql_mode'';
Si uno de los valores es STRICT_TRANS_TABLES , entonces se habilita el modo estricto, de lo contrario no. En mi caso dio
+--------------+------------------------------------------+
|Variable_name |Value |
+--------------+------------------------------------------+
|sql_mode |STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION|
+--------------+------------------------------------------+
Por lo tanto, el modo estricto está habilitado en mi caso ya que uno de los valores es STRICT_TRANS_TABLES .
-> Para deshabilitar el modo estricto ejecute el siguiente sql:
set global sql_mode='''';
[o cualquier modo excepto STRICT_TRANS_TABLES. Ej: set global sql_mode = ''NO_ENGINE_SUBSTITUTION'';]
-> Para habilitar nuevamente el modo estricto, ejecute el siguiente sql:
set global sql_mode=''STRICT_TRANS_TABLES'';
Para cambiarlo permanentemente en ubuntu haz lo siguiente
en la linea de comando de ubuntu
sudo nano /etc/mysql/my.cnf
Luego agrega lo siguiente
[mysqld]
sql_mode=
Primero, verifique si el modo estricto está habilitado o no en mysql usando:
SHOW VARIABLES LIKE ''sql_mode'';
Si quieres desactivarlo:
SET sql_mode = '''';
o se puede configurar cualquier otro modo, excepto el siguiente. Para habilitar el modo estricto:
SET sql_mode = ''STRICT_TRANS_TABLES'';
Puedes consultar el resultado de la primera consulta mysql.
Puede verificar su valor local y global con:
SELECT @@SQL_MODE, @@GLOBAL.SQL_MODE;