第二十一天:mysql服务器配置和状态
一、服务器配置和状态
官方帮助文档:
https://dev.mysql.com/doc/refman/8.0/en/server-option-variable-reference.html
https://dev.mysql.com/doc/refman/5.7/en/server-option-variable-reference.html
https://mariadb.com/kb/en/library/full-list-of-mariadb-options-system-and-status-variables/
1、服务器选项用横线,不用下划线
获取mysqld的可用选项列表:
#查看mysqld可用选项列表和及当前值 mysqld --verbose --help #获取mysqld当前启动选项 mysqld --print-defaults
2、设置服务器选项方法:
(1)在命令行中设置
shell> /usr/bin/mysqld_safe --skip-name-resolve=1 shell> /usr/libexec/mysqld --basedir=/usr
(2)在配置文件my.cnf中设置
vim /etc/my.cnf [mysqld] skip_name_resolve=1 skip-grant-tables
3、服务器系统变量
服务器系统变量:可以分全局和会话两种
注意: 系统变量用下划线,不用横线
获取系统变量
SHOW GLOBAL VARIABLES; #只查看global变量 SHOW [SESSION] VARIABLES;#查看所有变量(包括global和session) #查看指定的系统变量 SHOW VARIABLES LIKE 'VAR_NAME'; SELECT @@VAR_NAME; #查看选项和部分变量 [root@centos8 ~]#mysqladmin variables
修改服务器变量的值:
help SET
修改全局变量:仅对修改后新创建的会话有效;对已经建立的会话无效
SET GLOBAL system_var_name=value; SET @@global.system_var_name=value;
修改会话变量:
SET [SESSION] system_var_name=value; SET @@[session.]system_var_name=value;
4、服务器状态变量
服务器状态变量:分全局和会话两种
状态变量(只读):用于保存mysqld运行中的统计数据的变量,不可更改
SHOW GLOBAL STATUS; SHOW [SESSION] STATUS;
5、服务器变量 SQL_MODE
SQL_MODE:对其设置可以完成一些约束检查的工作,可分别进行全局的设置或当前会话的设置
参考:
https://mariadb.com/kb/en/library/sql-mode/ https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_sqlmode
常见MODE:
NO_AUTO_CREATE_USER: 禁止GRANT创建密码为空的用户 NO_ZERO_DATE:在严格模式,不允许使用'0000-00-00'的时间 ONLY_FULL_GROUP_BY: 对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY 中出现,那么将认为这个SQL是不合法的 NO_BACKSLASH_ESCAPES: 反斜杠"\"作为普通字符而非转义字符
PIPES_AS_CONCAT: 将"||"视为连接操作符而非"或"运算符