數據庫MySQL/mariadb知識點——數據庫變量
阿新 • • 發佈:2018-06-21
sys bash 選項參數 name true val option inf err
變量
在 MySQL 數據庫中,變量有兩種,分別為:系統變量和自定義變量。
根據變量的作用範圍,又分為:
- 會話級別變量:僅對當前客戶端當次連接有效;
- 全局級別變量:對所有客戶端的任一次連接都有效。
服務器變量還可分為動態變量和非動態變量,動態變量可以在服務器不重啟的情況下修改
註意:其中有些參數支持運行時修改,會立即生效;有些參數不支持,且只能通過修改配置文件,並重啟服務器程序生效;有些參數作用域是全局的,且不可改變;有些可以為每個用戶提供單獨(會話)的設置
服務器選項
# mysqld --help -verbose #獲取所有可以的選項
# mysqld --print-defaults #獲取默認設置
#mysqld_safe –-skip-name-resolve=1
:在啟動服務時加選項參數,禁止反解析IP,提高登錄效率;同時也可以將
skip_name_resolve=1
參數加入到my.cnf配置文件中
服務器系統變量
查看所有全局變量
MariaDB [(none)]> SHOW GLOBAL VARIABLES;
查看當前所有會話變量
MariaDB [(none)]> SHOW VARIABLES;
修改全局變量:僅對修改後新創建的會話有效;對已經建立的會話無效
mysql> SET GLOBAL system_var_name=value; mysql> SET @@global.system_var_name=value;
修改會話變量
mysql> SET [SESSION] system_var_name=value; mysql> SET @@[session.]system_var_name=value;
服務器狀態變量
查看狀態變量(只讀):用於保存mysqld運行中的統計數據的變量,不可更改
MariaDB [(none)]> SHOW GLOBAL STATUS; #全局狀態變量 MariaDB [(none)]> SHOW STATUS; #會話狀態變量
參考官方文檔:
- https://dev.mysql.com/doc/refman/5.7/en/mysqld-option-tables.html
- https://mariadb.com/kb/en/library/full-list-of-mariadb-options-system-and-status-variables
SQL_MODE
?sql_mode既是選項有是變量,作用對其設置可以完成一些約束檢查的工作,可分別進行全局的設置或當前會話的設置。
MariaDB [(none)]> SHOW VARIABLES LIKE ‘sql_mode‘; #查看sql_mode變量,默認為空
- NO_AUTO_CREATE_USER 禁止GRANT創建密碼為空的用戶
- NO_AUTO_VALUE_ON_ZERO 在自增長的列中插入0或NULL將不會是下一個自增長值
- NO_BACKSLASH_ESCAPES 反斜杠“”作為普通字符而非轉義字符
- PAD_CHAR_TO_FULL_LENGTH 啟用後,對於CHAR類型將不會截斷空洞數據
- PIPES_AS_CONCAT 將"||"視為連接操作符而非“或運算符”
- TRADITIONAL:包括STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,是一個參數的集合
MariaDB [(none)]> SET sql_mode=‘TRADITIONAL‘;
參考官方文檔:https://mariadb.com/kb/en/library/sql-mode
數據庫MySQL/mariadb知識點——數據庫變量