Mysql 设置sql_mode
2015-09-16 by dongnan
环境
操作系统: CentOS 6.5
软件版本: mysql 5.6.x
问题描述
mysql 数据库 my.cn
f 文件添加配置项 sql_mode
无效。
修改配置文件无效
tail -n1 /etc/my.cnf
sql_mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
查询SQL模式
mysql> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
1 row in set (0.00 sec)
设置全局变量无效
mysql> set global sql_mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
查询SQL模式
mysql> show variables like "sql_mode";
+---------------+--------------------------------------------+
| Variable_name | Value |
+---------------+--------------------------------------------+
| sql_mode | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+---------------+--------------------------------------------+
1 row in set (0.00 sec)
解决方法
编辑mysql启动脚本文件,添加 --sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
vim /etc/init.d/mysqld
找到类似如下格式内容
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
修改后内容类似如下
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" --sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" $other_args >/dev/null 2>&1 &
重启数据库
/etc/init.d/mysqld restart
验证
mysql> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
1 row in set (0.00 sec)