MySQL是一款廣泛用于Web開發、企業級解決方案和小型單機系統等各種場景的關系型數據庫管理系統。mysql8版本對于默認的sql_mode值做了一些更改,以提高數據庫安全性和功能性。不過有些時候我們需要根據具體項目的需要配置sql_mode值的內容,本文將介紹如何配置mysql8中的sql_mode。
首先,我們需要進入mysql的配置文件my.cnf。如果你是在Linux環境下使用mysql,則該文件的默認路徑是/etc/my.cnf,如果你是在Windows環境下使用mysql,則該文件的默認路徑是C:\Program Files\MySQL\MySQL Server 8.0\my.ini。在該文件中添加以下內容即可配置sql_mode:
[mysqld] sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
其中sql_mode的值為用戶自定義的參數。該參數的值可以是以逗號分隔的多個參數,也可以是一個參數。以下是常用的一些參數:
STRICT_TRANS_TABLES: 如果任何插入操作或更新操作因為違反了任何外鍵約束而無法執行,則會回滾該操作。 NO_ZERO_IN_DATE:在日期或時間類型的字段中,不允許使用“0000-00-00”或“0000-00-00 00:00:00”這樣的值。 NO_ZERO_DATE:在日期或時間類型的字段中,不允許使用“0000-00-00”這樣的值。 ERROR_FOR_DIVISION_BY_ZERO:如果除以零,則拋出一個錯誤而不是返回NULL。 NO_AUTO_CREATE_USER:不允許服務器自動創建用戶。 NO_ENGINE_SUBSTITUTION:如果所需的存儲引擎無法使用,則不允許使用另一種存儲引擎代替它。
配置好sql_mode后,需要重啟mysql服務,以使配置的sql_mode值生效。執行以下命令即可重啟mysql服務:
systemctl restart mysql # Linux下的命令 net start mysql # Windows下的命令
至此,我們已經完成了mysql8中的sql_mode值的配置。
上一篇mysql8連接時長
下一篇信號擴散css