聊聊MySQL中的参数

这篇文章主要介绍了MySQL中的参数是什么,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下

前言:

在前面一些文章中,经常能看到介绍某某参数的作用,可能有些小伙伴仍搞不清楚 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 或运维来维护,可能有些同学对这些参数还比较陌生。建议在数据库初始化时,根据服务器规格设置对应的数据库参数。对于不清楚作用的参数,建议保持默认值即可。关于更多参数相关的内容,可以参考官方文档:

https://dev.mysql.com/doc/refman/5.7/en/server-system-variable-reference.html

总结:

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

以上就是MySQL中的参数是什么的详细内容,更多关于MySQL 参数的资料请关注脚本之家其它相关文章!

来源:脚本之家

链接:https://www.jb51.net/article/195490.htm

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:SEO优化专员,转转请注明出处:https://www.chuangxiangniao.com/p/895680.html

(0)
上一篇 2025年1月4日 00:23:34
下一篇 2025年1月4日 00:24:14

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • MYSQL中char和varchar的区别

    这篇文章主要介绍了MYSQL中 char 和 varchar的区别,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下 CHAR和VARCHAR类型相似,差别主要在存储,尾随空格和检索方式上。 CHAR和VARCHAR相同的是…

    2025年1月4日
    100
  • MySQL8.0如何快速加列

    这篇文章主要介绍了MySQL8.0 如何快速加列,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下 前言: 很早就听说 MySQL8.0 支持快速加列,可以实现大表秒级加字段。笔者自己本地也有8.0环境,但一直未进行测试。本…

    2025年1月4日
    300
  • MySQL中的悲观锁与乐观锁

    这篇文章主要介绍了MySQL中悲观锁与乐观锁的相关资料,帮助大家更好的理解和学习MySQL数据库,感兴趣的朋友可以了解下 在关系型数据库中,悲观锁与乐观锁是解决资源并发场景的解决方案,接下来将详细讲解

    数据库 2025年1月4日
    200
  • MySQL的自增ID(主键) 用完了的解决方法

    这篇文章主要介绍了MySQL的自增ID(主键) 用完了的解决方法,帮助大家更好的理解和学习MySQL数据库,感兴趣的朋友可以了解下 在 MySQL 中用很多类型的自增 ID,每个自增 ID 都设置了初始值。一般情况下初始值都是从 0 开始,…

    数据库 2025年1月4日
    100
  • MySQL选择合适的存储引擎

    这篇文章主要介绍了MySQL如何选择合适的存储引擎,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下 对于数据库这一块询问比较多的就是在 MySQL 中怎么去选择一种何时当前业务需求的存储引擎,而 MySQL 中支持的存储引…

    2025年1月4日
    200
  • Mysql脏页flush及收缩表空间原理解析

    这篇文章主要介绍了Mysql脏页flush及收缩表空间原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 mysql脏页 由于WAL机制,InnoDB在更新语句的时候,制作了写日志这一…

    2025年1月4日 数据库
    100
  • Mysql读写分离过期常用解决方案

    这篇文章主要介绍了Mysql读写分离过期常用解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 mysql读写分离的坑 读写分离的主要目标是分摊主库的压力,由客户端选择后端数据库进行查…

    2025年1月4日
    200
  • mysql常用备份命令和shell备份脚本分享

    这篇文章主要介绍了mysql常用备份命令和shell备份脚本,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下 备份多个数据库可以使用如下命令: mysqldump -uroot -p123456 –databa…

    数据库 2025年1月4日
    200
  • Mysql误删数据解决方案及kill语句原理

    这篇文章主要介绍了Mysql误删数据解决方案及kill语句原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 mysql误删数据 使用delete语句误删数据行 使用drop table或…

    2025年1月4日 数据库
    200
  • MySQL limit分页大偏移量慢的原因及优化方案

    这篇文章主要介绍了MySQL limit分页大偏移量慢的原因及优化方案,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下 在 MySQL 中通常我们使用 limit 来完成页面上的分页功能,但是当数据量达到一个很大的值之后,…

    2025年1月4日
    200

发表回复

登录后才能评论

联系我们

156-6553-5169

在线咨询: QQ交谈

邮件:253000106@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

联系微信