加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

聊聊MySQL中的参数

发布时间:2020-11-09 08:21:47 所属栏目:创业 来源:网络整理
导读:这篇文章首要先容了MySQL中的参数是什么,辅佐各人更好的领略和行使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 参数相干观念及查询变动要领,但愿列位小搭档能学到相干常识。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读