Mysql 常用設置參數說明整理
創建數據庫
CREATE DATABASE IF NOT EXISTS godata_system default charset utf8 COLLATE utf8_general_ci;
查看最大連接數
show variables like '%max_connections%';
設置最大連接數
set global max_connections=1000;
mysql根據配置文件會限制server接受的數據包大小。
有時候大的插入和更新會受max_allowed_packet 參數限制,導致寫入或者更新失敗,導致項目訪問異常。
設置文件大小
set global max_allowed_packet = 2*1024*1024*10
查看
show variables like 'max_allowed_packet';
查看sql_mode
show variables like 'sql_mode';
sql_mode常用值
ONLY_FULL_GROUP_BY:
對於GROUP BY聚合操作,如果在SELECT中的列,沒有在GROUP BY中出現,那麼這個SQL是不合法的,因爲列不在GROUP BY從句中
NO_AUTO_VALUE_ON_ZERO:
該值影響自增長列的插入。默認設置下,插入0或NULL代表生成下一個自增長值。如果用戶 希望插入的值爲0,而該列又是自增長的,那麼這個選項就有用了。
STRICT_TRANS_TABLES:
在該模式下,如果一個值不能插入到一個事務表中,則中斷當前的操作,對非事務表不做限制
NO_ZERO_IN_DATE:
在嚴格模式下,不允許日期和月份爲零
NO_ZERO_DATE:
設置該值,mysql數據庫不允許插入零日期,插入零日期會拋出錯誤而不是警告。
ERROR_FOR_DIVISION_BY_ZERO:
在INSERT或UPDATE過程中,如果數據被零除,則產生錯誤而非警告。如 果未給出該模式,那麼數據被零除時MySQL返回NULL
NO_AUTO_CREATE_USER:
禁止GRANT創建密碼爲空的用戶
NO_ENGINE_SUBSTITUTION:
如果需要的存儲引擎被禁用或未編譯,那麼拋出錯誤。不設置此值時,用默認的存儲引擎替代,並拋出一個異常
PIPES_AS_CONCAT:
將"||"視爲字符串的連接操作符而非或運算符,這和Oracle數據庫是一樣的,也和字符串的拼接函數Concat相類似
ANSI_QUOTES:
啓用ANSI_QUOTES後,不能用雙引號來引用字符串,因爲它被解釋爲識別符
ORACLE的sql_mode設置等同:PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, NO_KEY_OPTIONS, NO_TABLE_OPTIONS, NO_FIELD_OPTIONS, NO_AUTO_CREATE_USER.
查看文件導入配置
SHOW VARIABLES LIKE "secure_file_priv";
(1)NULL,表示禁止。
(2)如果value值有文件夾目錄,則表示只允許該目錄下文件(PS:測試子目錄也不行)。
(3)如果爲空,則表示不限制目錄。
查看mysql 字符集設置 mysql8 默認字符集爲 utf8mb4 不再是latin1。
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
如果修改配置文件加入
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
查看時區設置 mysql8默認是美國時區 需要在配置文件中加入配置
show variables like '%time_zone%';