Как можно установить SQL_MODE навсегда на моем Mac
Я устанавливаю MySql на мой OsX 10.11 El Capitan. Если я пытаюсь начать свой запрос, у меня появляется странная ошибка, если в моем запросе есть Group By.
Поэтому, если я попытаюсь выполнить этот запрос из терминала:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
Я могу выполнить свой запрос никогда не проблема. Теперь, если я попытаюсь перезапустить мой macbook, у меня возникнет некоторая проблема, и я смогу повторно выполнить запрос.
Есть ли способ исправить этот sql_mode навсегда?
Мне нужно открыть файл "etc/mysql/my.cnf", но на моем Mac этого файла нет. Как я могу применить это изменение?
3 ответа
Вы можете установить my.cnf и добавить конфигурацию sql_mode
[mysqld]
sql_mode=ONLY_FULL_GROUP_BY
По умолчанию установка OS X не использует my.cnf, а MySQL просто использует значения по умолчанию. Чтобы создать свой собственный my.cnf, вы можете просто создать файл прямо в /etc.
Если вы используете MAMP PRO, стоит отметить это из руководства:
Вы не можете редактировать файл my.cnf напрямую. Вы должны использовать интерфейс MAMP PRO для редактирования файла my.cnf. В меню выберите "Файл"> "Редактировать шаблон"> "MySQL"> "my.cnf".
Затем вы можете добавить нужный sql_mode под заголовком [mysqld]. например:
[mysqld]
sql_mode=ONLY_FULL_GROUP_BY
Это то, что сработало для меня.
Если вы хотите отключить ONLY_FULL_GROUP_BY, вам необходимо сначала проверить значение переменной sql_mode:
(значения по умолчанию)
mysql> show variables like 'sql_mode'\G
*************************** 1. row ***************************
Variable_name: sql_mode
Value: ONLY_FULL_GROUP_BY,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,01 sec)
Отредактируйте файл конфигурации MySQL my.conf. Обычно в /etc/my.cnf, как сказал scaisEdge. но вы должны написать:
[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
(все значения без ONLY_FULL_GROUP_BY - вы можете скопировать / вставить эту строку)
Перезагрузите MySQL и наслаждайтесь.
Правильный способ сделать это, выполнив следующие действия
Закройте MAMP.
Выполните следующую команду в Терминале:
коснитесь /Applications/MAMP/conf/my.cnf && open -t /Applications/MAMP/conf/my.cnf
Когда этот файл пуст, добавьте следующее ниже. Если файл не пустой, просто добавьте строку sql_mode="" сразу после строки [mysqld]
[mysqld]sql_mode=""
Сохраните файл конфигурации и закройте текстовый редактор; перезапустите MAMP и запустите серверы.
ссылка: https://mampsupportforum.com/forums/latest/mamp-mamp-pro-disable-mysql-strict-mode