pipes_as_concat - sql mode mysql
configurando sql_mode global en mysql (6)
Estoy intentando configurar sql_mode en mysql pero produce un error.
Mando:
set global sql_mode=''NO_BACKSLASH_ESCAPES'',''STRICT_TRANS_TABLE'',''NO_AUTO_CREATE_USER'',''NO_ENGINE_SUBSTITUTION''
¿No es esta la forma correcta de configurar múltiples modos? ¿Cuáles son las ventajas de configurar modos de sesión y globales? cual es el preferido Tengo diferentes usuarios que intentan actualizar la base de datos con diferentes valores UNC e instalé la configuración del modo de sesión en ''NO_BACKSLASH_ESCAPES'', aunque creo que tendría sentido para este un modo global. ¿Esto tiene sentido?
Por favor hagamelo saber.
Gracias.
Configuración del modo sql permanentemente utilizando el archivo de configuración mysql.
En mi caso, tengo que cambiar el archivo /etc/mysql/mysql.conf.d/mysqld.cnf
ya que mysql.conf.d
está incluido en /etc/mysql/my.cnf
. cambio esto bajo [mysqld]
[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
acaba de eliminar ONLY_FULL_GROUP_BY
modo sql porque estaba causando problemas.
Estoy usando ubuntu 16.04
, php 7
y mysql --version dame este mysql Ver 14.14 Distrib 5.7.13, for Linux (x86_64) using EditLine wrapper
Después de este cambio, ejecute los siguientes comandos
sudo service mysql stop
sudo service mysql start
Ahora verifique los modos de SQL mediante esta consulta SELECT @@sql_mode
y debería obtener los modos que acaba de establecer.
Copie al archivo de configuración: /etc/mysql/my.cnf OR /bin/mysql/my.ini
[mysqld]
port = 3306
sql-mode=""
MySQL
reinicio.
O tambien puedes hacer
[mysqld]
port = 3306
SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
MySQL
reinicio.
En mi caso, tengo que cambiar el archivo /etc/mysql/mysql.conf.d/mysqld.cnf
cambiar esto bajo [ mysqld
]
Pega esta línea en la porción [ mysqld
]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Lo resolví.
el modo correcto es:
set global sql_mode="NO_BACKSLASH_ESCAPES,STRICT_TRANS_TABLE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Por cierto, si configura globales en MySQL:
SET GLOBAL sql_mode = ''NO_ENGINE_SUBSTITUTION'';
SET SESSION sql_mode = ''NO_ENGINE_SUBSTITUTION'';
Esto no lo configurará de forma PERMANENTE y se revertirá después de cada reinicio.
Así que debes configurar esto en tu archivo de configuración (por ejemplo, /etc/mysql/my.cnf
en la sección [mysqld]), para que los cambios sigan vigentes después del reinicio de MySQL:
Archivo de configuración: /etc/mysql/my.cnf
[mysqld]
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
ACTUALIZACIÓN: las versiones más recientes de Mysql (por ejemplo, 5.7.8 o superior) pueden requerir una sintaxis ligeramente diferente:
[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
Asegúrese de que haya un guión entre sql-mode
no un guión bajo, y que los modos estén entre comillas dobles.
Siempre haga referencia a los documentos MySQL de su versión para ver las opciones de modo SQL .
set global sql_mode="NO_BACKSLASH_ESCAPES,STRICT_TRANS_TABLE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"