前言:

在前面一些文章中,经常能看到介绍某某参数的作用,可能有些小伙伴仍搞不清楚 MySQL 参数是啥。本篇文章我们来聊聊 MySQL 参数,学习下如何管理维护 MySQL 参数。

1.MySQL参数概念

我们所说的参数在官方文档中称为 系统变量(system variable),不同的变量有着不同的作用。 MySQL 服务端维护了许多表示其配置的系统变量,所有变量均有默认值。一般可以在启动命令行中或配置文件中对它们进行设置。

系统变量分为全局系统变量(global)和会话系统变量(session)。有些变量既有全局变量又有会话变量,有些变量只有全局变量。全局变量影响服务器的全局操作,会话变量只影响具体客户端连接相关操作。若会话变量未单独设置,则继承自相应全局变量。

MySQL 服务启动时,会按照配置文件或命令行中指定的选项来给全局变量赋值,没有指定则按默认值处理。服务启动后,通过连接服务器并执行 SET GLOBAL var_name 语句可以动态更改部分全局变量的值。要想更改全局变量,必须具有 SUPER 权限。 MySQL 还为每个客户端连接维护会话变量,连接时使用相应全局变量的当前值对客户端会话变量进行初始化。客户端可以通过 SET SESSION var_name 语句来动态更改会话变量。设置会话变量不需要特殊权限,但会话变量只作用于当前连接。

2.参数查询与变更示例

这里也要说明下,并不是所有的参数都可以动态修改,某些参数只能写入配置文件然后重启数据库才能生效。下面我们来展示下 MySQL 参数的查询与修改。

# 参数查询
show global variables like 'var_name'; //查看全局系统变量的值,可使用%通配符
show session variables like 'var_name'; //查看会话系统变量的值
show variables like 'var_name'; //优先返回会话系统变量,若会话系统变量不存在,则返回全局系统变量。 # 也可用select查询某个特定参数
select @@global.var_name; //全局系统变量
select @@session.var_name; //会话系统变量
select @@var_name; //优先会话系统变量 # 查询示例
mysql> show global variables like 'server_id';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| server_id | 1003306 |
+---------------+---------+
1 row in set (0.00 sec) mysql> show global variables like 'log_bin%';
+---------------------------------+-------------------------------+
| Variable_name | Value |
+---------------------------------+-------------------------------+
| log_bin | ON |
| log_bin_basename | /data/mysql/logs/binlog |
| log_bin_index | /data/mysql/logs/binlog.index |
| log_bin_trust_function_creators | ON |
| log_bin_use_v1_row_events | OFF |
+---------------------------------+-------------------------------+
5 rows in set (0.00 sec) mysql> select @@server_id;
+-------------+
| @@server_id |
+-------------+
| 1003306 |
+-------------+
1 row in set (0.00 sec) # 动态修改参数
set global var_name = value;
set session var_name = value;
set var_name = value; set @@global.var_name = value;
set @@session.var_name = value;
set @@var_name = value; # 参数修改示例
mysql> set global sort_buffer_size = 2097152;
Query OK, 0 rows affected (0.00 sec) mysql> set session sort_buffer_size = 4194304;
Query OK, 0 rows affected (0.00 sec) mysql> select @@global.sort_buffer_size,@@session.sort_buffer_size;
+---------------------------+----------------------------+
| @@global.sort_buffer_size | @@session.sort_buffer_size |
+---------------------------+----------------------------+
| 2097152 | 4194304 |
+---------------------------+----------------------------+
1 row in set (0.00 sec)

参数动态修改后,建议将其写入配置文件。因为动态修改的参数在 MySQL 服务重启后会失效,只有写入配置文件才能够重启后仍有效。对于一些无法动态修改的参数,我们只能通过修改配置文件,然后重启来使之生效。这里所说的配置文件就是 my.cnf 文件了,Linux 系统一般在 /etc 目录下;Windows 系统一般在 basedir 目录下,名称可命名为 my.ini 。大部分参数需要配置在 [mysqld] 下,一份简单的配置文件示例如下:

vi /etc/my.cnf
# 简单模板如下:
[mysqld]
user = mysql
datadir = /data/mysql/data
socket = /data/mysql/tmp/mysql.sock
pid-file = /data/mysql/tmp/mysqld.pid
skip_name_resolve = 1
max_connections = 2000
lower_case_table_names = 1
log_timestamps=SYSTEM
max_allowed_packet = 32M
...

MySQL 参数一般由 DBA 或运维来维护,可能有些同学对这些参数还比较陌生。建议在数据库初始化时,根据服务器规格设置对应的数据库参数。对于不清楚作用的参数,建议保持默认值即可。关于更多参数相关的内容,可以参考官方文档:

总结:

本篇文章详细讲述了 MySQL 参数相关概念及查询更改方法,希望各位小伙伴能学到相关知识。

关于MySQL参数,这些你要知道的更多相关文章

  1. MySQL程序之mysql参数详解

    MySQL程序之mysql参数详解 mysql 是一个命令行客户程序,用于交互式或以批处理模式执行SQL语句 用法: mysql [OPTIONS] [database] 参数: 1.-? --hel ...

  2. Mysql 性能优化4 mysql参数配置

    mysql 参数的介绍 大概450项参数,大多保持默认就可以了 错误的参数 崩溃,错误,运行缓慢. 参数最好在生产环境前配置好.最好不要在生产环境 中 直接配置,有可能不会立即生效,或者之前的数据和配 ...

  3. MySQL参数优化案例

    环境介绍 优化层级与指导思想 优化过程 最小化安装情况下的性能表现 优化innodb_buffer_pool_size 优化innodb_log_files_in_group&innodb_l ...

  4. MySQL参数文件及参数修改方法

    MySQL参数文件: MySQL数据库初始化参数由参数文件来设置,如果没有设置参数文件,mysql就按照系统中参数的默认值来启动. 在windows和linux上,参数文件可以被放在多个位置,数据库启 ...

  5. 官方推荐的MySQL参数设置值

    这oracle官方推荐的在OLTP环境下,MySQL参数设置的最佳实践. 下面的参数设置,对系统的性能会很有帮助.但是建议大家还是结合实际情况使用. APPLIES TO: MySQL Server ...

  6. [MySQL] 参数: innodb_flush_log_at_trx_commit和sync_binlog

    MySQL参数: innodb_flush_log_at_trx_commit和sync_binlog innodb_flush_log_at_trx_commit和sync_binlog是MySQL ...

  7. mysql参数讲解

    MySQL配置参数详解: http://blog.csdn.net/wlzx120/article/details/52301383 深入理解mysql参数 http://blog.itpub.net ...

  8. docker环境下mysql参数修改

    原文:docker环境下mysql参数修改 需要修改log_bin为on,看了好几个博客说都需要删掉容器重新生成,然而并非如此, 我们可以用docker cp 命令将docker的文件"下载 ...

  9. mysql参数sql_log_bin配置

    mysql参数sql_log_bin配置 如果想在主库上执行一些操作,但不复制到slave库上,可以通过修改参数sql_log_bin来实现.比如说,这里模拟主从同步复制异常. 还有一种场景,就是导入 ...

随机推荐

  1. Flutter 改善套娃地狱问题(仿喜马拉雅PC页面举例)

    前言 这篇文章是我一直以来很想写的一篇文章,终于下定决心动笔了. 写Flutter的小伙伴可能都感受到了:掘金的一些热门的Flutter文章下,知乎的一些Flutter的话题下或者一些论坛里面,喷Fl ...

  2. 如何在 ASP.Net Web Forms 中使用依赖注入

    依赖注入技术就是将一个对象注入到一个需要它的对象中,同时它也是控制反转的一种实现,显而易见,这样可以实现对象之间的解耦并且更方便测试和维护,依赖注入的原则早已经指出了,应用程序的高层模块不依赖于低层模 ...

  3. github文件快速下载

    目录 一,提升加载速度 二,提升下载速度 只是想快速下载文件的直接看第二部分. github加载速度慢究其原因还是伟大的墙的存在.我们需要赞美墙,但就算墙很伟大,问题还是要解决的. 有问题就解决问题, ...

  4. 闲来无事,在微信推文中看到一个炫酷的具有动态特效的中国地图,是用R语言做的,于是尝试了一下

    目录 最终的效果图如下: 1.环境准备 2.需要安装的包: 3.进一步配置: end 最终的效果图如下: 1.环境准备 既然是用R语言作图,那么这几个软件是一定需要安装的: R语言的编译器:https ...

  5. 一文搞懂MySQL体系架构!!

    写在前面 很多小伙伴工作很长时间了,对于MySQL的掌握程度却仅仅停留在表面的CRUD,对于MySQL深层次的原理和技术知识了解的少之又少,随着工作年限的不断增长,职场竞争力却是不断降低的.很多时候, ...

  6. 阿里妈妈Java后端 社招5面(Offer已拿)

    最近由于个人原因, 由于前面两面的时间过去的有点久了,只能根据记忆大概写些记得问题.   阿里妈妈1面 40mins(2021-02-22) 1. 能简单介绍下自己和自己做的项目吗? 2. 关于项目的 ...

  7. Dynamics CRM安装教程九(续):自建证书的CRM项目客户端设置CRM访问

    配置完IFD之后就可以为客户端电脑配置访问CRM了首先到CA证书服务器中把证书下载下来,打开CA服务器的浏览器,输入地址http://stg-ad/certsrv/ 其中stg-ad是机器名之后点击下 ...

  8. (六)Struts2的拦截器

    一.简介 拦截器体系是struts2重要的组成部分.正是大量的内建拦截器完成了该框架的大部分操作. 比如params拦截器将请求参数解析出来,设置Action的属性.servletConfig拦截器负 ...

  9. GO-02-helloworld

    package main /** package main表示一个可独立执行的程序,每个Go应用程序都需要包含一个名为main的包, 并且该包包含一个叫main()的函数(该函数是Go可执行程序的执行 ...

  10. Squares UVA - 201

    A children's board game consists of a square array of dots that contains lines connecting some of th ...