今天突然發現mysql伺服器公升級之後sql_mode
變成寬鬆摸索了,危害如下:
set global sql_mode='strict_trans_tables'
(阿里伺服器預設是:strict_trans_tables
)
上面這種方式在mysql重啟後就會失效,想要永久生效還得聯絡運維工程師,eg:
ps:為了防止再出現公升級後sql_mode
改變,以後在配置檔案中設定sql_mode
全域性修改:需要有許可權,並且不會立即生效,對以後新建的會話生效(從全域性繼承的)
配置修改:永遠生效:
常用mode:(阿里伺服器預設是:strict_trans_tables
)
no_engine_substitution
:建表的時候指定不可用儲存引擎會報錯
only_full_group_by
:檢驗group by
語句的合法性
ps:生存環境下最好不要修改,容易報錯對業務產生影響(嚴格變寬鬆沒事)
查詢當前設定:select @@sql_mode
mysql中sql mode的修改
很多時候修改sql mode是因為插入或者修改空日期失敗 只要sql mode中的兩個屬性刪除就可以了 no zero date 設定該值,mysql資料庫不允許插入零日期,插入零日期會丟擲錯誤而不是警告 no zero in date 在嚴格模式下,不允許日期和月份為零 select global...
mysql8修改sql mode後服務啟動服務
設定 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伺服器主動後停...
mysql的sql mode合理設定
mysql的sql mode合理設定 sql mode是個很容易被忽視的變數,預設值是空值,在這種設定下是可以允許一些非法操作的,比如允許一些非法資料的插入。在生產環境必須將這個值設定為嚴格模式,所以開發 測試環境的資料庫也必須要設定,這樣在開發測試階段就可以發現問題 sql mode常用值如下 o...