off modo estricto desactivar mysql macos configuration homebrew sql-mode

off - desactivar modo estricto mysql



Cómo deshacerse del modo STRICT SQL en MySQL (8)

Este es un seguimiento de esta pregunta MYSQL formato incorrecto DATETIME

¿Cómo deshacerse de STRICT_TRANS_TABLES de una vez por todas?

mysql --help informa las siguientes configuraciones:

Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf $ ls /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf ls: /Users/pain/.my.cnf: No such file or directory ls: /etc/mysql/my.cnf: No such file or directory ls: /usr/local/etc/my.cnf: No such file or directory /etc/my.cnf $ cat /etc/my.cnf [mysqld] sql_mode=NO_ENGINE_SUBSTITUTION

Pero esto no ayuda. Tengo un código heredado y cada vez que reinicio la computadora tengo que iniciar mysql y cambiar sql_mode.

Actualizar

Así que abandoné MySQL instalado en Homebrew y lo descargué de mysql.com. Pero eso tampoco ayudó. Siguiendo las respuestas aquí: ¿Cómo arreglar `variable desconocida ''sql-mode = ANSI''`? He probado diferentes variaciones de /etc/my.cnf : [mysql] , [mysqld] , sql_mode , sql-mode - nada ayudó.


Ahora no puede configurar sql_mode en una cadena vacía, la consulta real es:

SET @@GLOBAL.sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

MySQL 5.7.16


Así que al final eliminé el servidor MySQL que obtuve de mysql.com, lo reinstalé a través de Homebrew y tuve que editar

/usr/local/Cellar/mysql/5.6.xx/my.cnf

Donde podría comentar el STRICT_TRANS_TABLES .

Sin embargo, esto no explica por qué la configuración predeterminada anula la de /etc/my.cnf , pero ya pasé demasiado tiempo en esto como está. Y, por cierto, todavía no estoy seguro de qué hacer con la distribución provista por mysql.com.


De acuerdo con el modo estricto de MySQL en OS X, la configuración problemática está realmente en /usr/local/mysql/my.cnf y se puede comentar para detener este comportamiento.



En Centos 6.5 tuve que editar /usr/my.cnf y establecer (aunque existía /etc/my.cnf y los enlaces se establecieron correctamente allí)

[mysqld] sql_mode=NO_ENGINE_SUBSTITUTION

el paquete era de

mysql-community-client.x86_64 5.6.16-1.el6 @mysql56-community


En Mac OS X El Capitán, creé un archivo .my.cnf en el directorio de inicio del usuario, establecí las configuraciones para mysql en [mysqld] y luego reinicié mysql. Funcionó bien!


Este problema también me afectó por un tiempo. Ninguna de las respuestas abordó el problema original hasta ahora, pero creo que la mía sí, así que lo publicaré en caso de que ayude a alguien más.

Tengo MySQL (de mysql.com) Community Edition 5.7.10 instalado en OS X 10.10.3

Al final creé un /etc/mysql/my.cnf con los siguientes contenidos:

[mysqld] sql_mode=NO_ENGINE_SUBSTITUTION

Después de reiniciar el servidor a SHOW VARIABLES LIKE ''sql_mode''; me dio:-

+---------------+------------------------+ | Variable_name | Value | +---------------+------------------------+ | sql_mode | NO_ENGINE_SUBSTITUTION | +---------------+------------------------+ 1 row in set (0.00 sec)

Por último, no hay modo estricto!


Probé todas las respuestas que pude encontrar sobre este problema utilizando MySQL 5.7 en Mac OS 10.12 y, en última instancia, desactivé el modo estricto no debido a la ubicación de my.cnf, que presumiblemente puede estar en cualquiera de los lugares que MySQL dice que verifica, pero Gracias a un problema de permisos UNIX.

Usé MySQL Workbench 6.2.3.12313 para crear my.cnf inicialmente. Esto causó dos problemas posibles: primero, configuró la opción a "modo-sql" en lugar de "modo_lq", y convirtió el archivo (ubicado en / etc) en legible y escribible solo para la raíz. MySQL no se ejecuta como root cuando lo instala como lo hice desde el paquete binario en el sitio web de MySQL, se ejecuta como _mysql. Entonces el usuario _mysql necesita poder leer /etc/my.cnf, o donde sea que lo coloques. Para que eso funcione, necesitas ejecutar:

sudo chmod o+r /etc/my.cnf

y por si acaso puedes correr también:

sudo chmod g+r /etc/my.cnf

Entonces asegúrese de reiniciar MySQL. (Descubrí que esto funciona mejor a través del Panel de Preferencias del Sistema MySQL en Mac OS; el uso de la línea de comandos es un poco desordenado y la funcionalidad de MySQL Workbench simplemente no funciona). Siempre que tenga una configuración sql_mode en my.cnf, no implica el modo estricto, el modo estricto debe estar desactivado.