mysql服务配置

服务器配置和状态:

通过mysqld的选项查看: 服务配置选项、服务器系统变量、状态变量

官方文档:

mysql的官方文档说明:

  • cmd-line 列是服务启动时可用的配置参数(命令行)
  • option file 是配置文件中可写的参数
  • system var 是系统变量
  • status var
  • var scope 是变量范围,global是全局,both既是全局有时服务配置选项,session是只针对当前会话生效
  • dynamic 为是否支持动态不修改(用set 修改)

mariadb的官方文档说明:

  • 参数间用"-"分隔是服务配置选项
  • “_”是变量,如果两种都有,就是都可用的

服务选项:

/usr/libexec/mysqld --verbose --help         服务器选项查看
mysqld --print-defaults       	  查看当前运行mysqld使用选项

设置服务器选项方法:

方法一:

/usr/bin/mysqld_safe --skip-name-resolve=1
/usr/libexec/mysqld --basedir=/usr

方法二:

vim /etc/my.cnf
[mysqld]
skip_name_resolve=1
skip-grant-tables

服务系统变量:

SHOW GLOBAL VARIABLES;      #只查看global变量
SHOW [SESSION] VARIABLES;  #查看所有变量(包括global和session)
SHOW VARIABLES LIKE 'VAR_NAME';     查看指定的系统变量
SELECT @@VAR_NAME           查看指定的系统变量

修改系统变量:

SET GLOBAL system_var_name=value;
SET [SESSION] system_var_name=value;

sql_mode变量:

改变sql的执行方式、行为

常见参数:

no_auto_create_user 禁止grant命令创建空密码用户
no_zero_date 严格模式下,不允许使用‘0000-00-00’格式时间
only_full_group_by 进行分组操作时,select的字段必须是跟条件字段、显示字段有关
no_backslash_escapes "\"作为普通字符,而不是转义符
pippes_as_concat 将“||”作为连接操作符,而非运算符
tradition 字符数量严格模式,如:varchar(3),就不能插入超过3个字符
修改最大连接数,跟用户max_open_file有关联
方法一:
vim /usr/lib/systemd/system/mariadb.service
[Service]
LimitNOFILE=65535
方法二:
mkdir /etc/systemd/system/mariadb.service.d/
vim /etc/systemd/system/mariadb.service.d/limits.conf
[Service]
LimitNOFILE=65535
修改页大小

说明:

  • 初始化数据目录后,不能更改此系统变量的值。 在MariaDB实例启动时设置InnoDB的页面大小,此后保持不变
vim /etc/my.cnf.d/mariadb-server.cnf 
innodb_page_size

状态变量:

用于保存mysqld运行中的统计数据的变量,不可更改

SHOW GLOBAL STATUS;
SHOW [SESSION] STATUS;

常见状态变量:

mysql -e 'show global status where variable_name="uptime"'
mysql -e 'show global status'|grep -i uptime
Uptime 服务器已经运行的实际,单位秒
Questions 已经发送给数据库查询数
Com_select 查询次数,实际操作数据库的
Com_insert 插入次数
Com_delete 删除次数
Com_update 更新次数
Com_commit 事务次数
Com_rollback 回滚次数
Innodb_log_waits 因log buffer不足导致等待的次数
Innodb_os_log_pending_fsyncs redo log的pending 同步次数
Threads_cached cached的线程数
Max_used_connections 自启动以来最大会话连接数
Connections mysql启动后的连接次数
Threads_created 创建的线程数,值过大可增加thread_cache_size。缓存未命中率可以计算为 Threads_created/ Connections
Threads_connected mysql当前打开的连接数
Threads_running mysql当前未休眠线程数,一般要小于会话连接数
Created_tmp_disk_tables 创建的on-disk临时表数量
Handler_read_first 读取索引第一个字符的次数,如果该指标很高说明系统进行了大量的full index scan,例如select col1 from foo(col1列有索引)
Handler_read_key 通过key值读取行的次数,说明query很好的利用了索引
Innodb_buffer_pool_wait_free 说明buffer pool没有空闲内存了,有多种原因,最常见的是Buffer pool太小
Select_full_join 执行表扫描的joins数量(没有使用索引)
Slow_queries 慢查询的数量
Open_tables 当前打开表的数量
posted @ 2022-02-05 14:23  suyanhj  阅读(265)  评论(0)    收藏  举报