mysql中sql_mode的查看和設(shè)置
歡迎來到藍(lán)隊(duì)云技術(shù)小課堂,每天分享一個(gè)技術(shù)小知識(shí)。
查看當(dāng)前的sql_mode
select @@session.sql_mode;
select @@global.sql_mode;
# 或者
show variables like 'sql_mode';


臨時(shí)設(shè)置方式:
設(shè)置當(dāng)前窗口中設(shè)置sql_mode
SET GLOBAL sql_mode = 'modes...'; #全局
SET SESSION sql_mode = 'modes...'; #當(dāng)前會(huì)話
示例:
#改為嚴(yán)格模式。此方法只在當(dāng)前會(huì)話中生效,關(guān)閉當(dāng)前會(huì)話就不生效了。
SET SESSION sql_mode='STRICT_TRANS_TABLES';
#改為嚴(yán)格模式。此方法在當(dāng)前服務(wù)中生效,重啟MySQL服務(wù)后失效。
SET GLOBAL sql_mode='STRICT_TRANS_TABLES';
永久設(shè)置方式:
在/etc/my.cnf中配置sql_mode
在my.cnf文件(windows系統(tǒng)是my.ini文件),新增:
[mysqld]
sql_mode=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
然后重啟MySQL。 當(dāng)然生產(chǎn)環(huán)境上是禁止重啟MySQL服務(wù)的,所以采用 臨時(shí)設(shè)置方式 + 永久設(shè)置方式
來解決線上的問題, 那么即便是有一天真的重啟了MySQL服務(wù),也會(huì)永久生效了。
藍(lán)隊(duì)云官網(wǎng)上擁有完善的技術(shù)支持庫可供參考,大家可自行查閱,更多技術(shù)問題,可以直接咨詢。同時(shí),藍(lán)隊(duì)云整理了運(yùn)維必備的工具包免費(fèi)分享給大家使用,需要的朋友可以直接咨詢。
更多技術(shù)知識(shí),藍(lán)隊(duì)云期待與你一起探索。