第二十一天: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的可用选项列表:
1 2 3 4 | #查看mysqld可用选项列表和及当前值 mysqld --verbose --help #获取mysqld当前启动选项 mysqld --print-defaults |
2、设置服务器选项方法:
(1)在命令行中设置
1 2 | shell> /usr/bin/mysqld_safe --skip-name-resolve=1 shell> /usr/libexec/mysqld --basedir=/usr |
(2)在配置文件my.cnf中设置
1 2 3 4 | vim /etc/my.cnf [mysqld] skip_name_resolve=1 skip- grant -tables |
3、服务器系统变量
服务器系统变量:可以分全局和会话两种
注意: 系统变量用下划线,不用横线
获取系统变量
1 2 3 4 5 6 7 | SHOW GLOBAL VARIABLES; #只查看 global 变量 SHOW [SESSION] VARIABLES;#查看所有变量(包括 global 和session) #查看指定的系统变量 SHOW VARIABLES LIKE 'VAR_NAME' ; SELECT @@VAR_NAME; #查看选项和部分变量 [root@centos8 ~]#mysqladmin variables |
修改服务器变量的值:
help SET
修改全局变量:仅对修改后新创建的会话有效;对已经建立的会话无效
1 2 | SET GLOBAL system_var_name=value; SET @@ global .system_var_name=value; |
修改会话变量:
1 2 | SET [SESSION] system_var_name=value; SET @@[session.]system_var_name=value; |
4、服务器状态变量
服务器状态变量:分全局和会话两种
状态变量(只读):用于保存mysqld运行中的统计数据的变量,不可更改
1 2 | SHOW GLOBAL STATUS; SHOW [SESSION] STATUS; |
5、服务器变量 SQL_MODE
SQL_MODE:对其设置可以完成一些约束检查的工作,可分别进行全局的设置或当前会话的设置
参考:
1 2 | https://mariadb.com/kb/en/library/sql-mode/ https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_sqlmode |
常见MODE:
1 2 3 4 5 | 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: 将"||"视为连接操作符而非"或"运算符
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步