MySQL: установка режима sql постоянно
через клиент командной строки MySQL я пытаюсь установить глобальный mysql_mode:
SET GLOBAL sql_mode = TRADITIONAL;
это работает для текущего сеанса, но после перезагрузки сервера sql_mode возвращается к своему умолчанию:", пустая строка.
Как я могу навсегда установить SQL_MODE в традиционный?
если уместно, MySQL является частью пакета WAMP.
спасибо.
2 ответов
добавьте это в свой my.cnf файл (или мой.ini, если вы используете windows):
sql_mode="TRADITIONAL"
и перезапустите сервер
MySQL sql_mode "TRADITIONAL"
, a.к. a. "строгий режим", определяется документы MySQL as:
"дайте ошибку вместо предупреждения" при вставке неправильного значения в столбец.
вот как убедиться, что ваш sql_mode установлен в "TRADITIONAL"
.
во-первых, проверьте текущую настройку:
mysql
mysql> SELECT @@GLOBAL.sql_mode;
+-------------------+
| @@GLOBAL.sql_mode |
+-------------------+
| |
+-------------------+
1 row in set (0.00 sec)
этот возвращенный пробел, по умолчанию, это плохо: ваш sql_mode не установлен в "ТРАДИЦИОННЫЙ."
поэтому отредактируйте файл конфигурации:
sudo vim /etc/mysql/my.cnf
добавьте эту строку в раздел с надписью [mysqld]
: sql_mode="TRADITIONAL"
(как указал fancyPants)
перезапустите сервер:
sudo service mysql restart
затем проверьте еще раз:
mysql
mysql> SELECT @@GLOBAL.sql_mode;
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
успехов! Теперь ты золотой.