說起來也奇怪至今仍不解哪出問題了?本地端跟客戶端同樣都是安裝XAMPP-7.3.11版,但客戶端的sql_mode設定卻和本地端不相同,導致許多模組本地端是正常的但上傳到客戶端後都無法使用,資料存取出錯或無法寫入,經過檢查發現XAMPP的windows版本跟CentOS版本my.ini配置是不一樣的!
先來看一下my.ini設定->windows版
sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION
資料庫設定是使用
NO_ZERO_IN_DATE
NO_ZERO_DATE
NO_ENGINE_SUBSTITUTION
再來看CentOS->my.ini設定
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
資料庫設定是使用
STRICT_TRANS_TABLES
ERROR_FOR_DIVISION_BY_ZERO
NO_AUTO_CREATE_USER
NO_ENGINE_SUBSTITUTION
差別在時間格式及預設值部分,為了讓本地端跟客戶端的設定一致,所以修改本地端的my.ini吧sql_mode替換為以下的設定值
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重新啟用MYSQL後再SQL輸入SELECT @@GLOBAL.sql_mode看設定是否有生效!
如果顯示設定值跟my.ini中設定一樣就可以了,關於資料庫sql_mode常用值說明可以參考這個網站
http://xstarcd.github.io/wiki/MySQL/MySQL-sql-mode.html
先讓本地端跟客戶端設定一致,然後才來調整SQL語法,才能做升級工作喔!!
教學心得撰寫:徐嘉裕 Neil hsu
先來看一下my.ini設定->windows版
sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION
資料庫設定是使用
NO_ZERO_IN_DATE
NO_ZERO_DATE
NO_ENGINE_SUBSTITUTION
再來看CentOS->my.ini設定
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
資料庫設定是使用
STRICT_TRANS_TABLES
ERROR_FOR_DIVISION_BY_ZERO
NO_AUTO_CREATE_USER
NO_ENGINE_SUBSTITUTION
差別在時間格式及預設值部分,為了讓本地端跟客戶端的設定一致,所以修改本地端的my.ini吧sql_mode替換為以下的設定值
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重新啟用MYSQL後再SQL輸入SELECT @@GLOBAL.sql_mode看設定是否有生效!
如果顯示設定值跟my.ini中設定一樣就可以了,關於資料庫sql_mode常用值說明可以參考這個網站
http://xstarcd.github.io/wiki/MySQL/MySQL-sql-mode.html
先讓本地端跟客戶端設定一致,然後才來調整SQL語法,才能做升級工作喔!!
教學心得撰寫:徐嘉裕 Neil hsu
留言
張貼留言