将mysql的变量置为0_MySQL 8.0 全局变量的修改持久化 set persist
全局变量的修改持久化
在8之前的版本中,对于全局变量的修改,其只会影响其内存值,而不会持久化到配置文件中。数据库重启,又会恢复成修改前的值。从8开始,可通过SET PERSIST命令将全局变量的修改持久化到配置文件中。
修改持久化
mysql> show variables like '%max_connections%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| max_connections | 151 |
| mysqlx_max_connections | 100 |
+------------------------+-------+
2 rows in set (0.03 sec)
mysql> set persist max_connections=300;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%max_connections%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| max_connections | 300 |
| mysqlx_max_connections | 100 |
+------------------------+-------+
2 rows in set (0.00 sec)
修改后的保存位置
在数据库启动时,会首先读取其它配置文件,最后才读取mysqld-auto.cnf文件。不建议手动修改该文件,其有可能导致数据库在启动过程中因解析错误而失败。如果出现这种情况,可手动删除mysqld-auto.cnf文件或将persisted_globals_load变量设置为off来避免该文件的加载。
scutech@scutech:~$ cat /mysql/data/mysqld-auto.cnf
{ "Version" : 1 , "mysql_server" : { "max_connections" : { "Value" : "300" , "Metadata" : { "Timestamp" : 1583910814250180 , "User" : "root" , "Host" : "localhost" } } } }
mysql> select * from performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+-----------------+----------------+
| max_connections | 300 |
+-----------------+----------------+
1 row in set (0.01 sec)12345678910
MySQL [(none)]> show variables like '%persisted_globals_load%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| persisted_globals_load | ON |
+------------------------+-------+
1 row in set (0.06 sec)
持久化为默认值
还可以通过下述方式将全局变量持久化为默认值。注意,是默认值,而不是修改前的值。
mysql> set persist max_connections=default;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+-----------------+----------------+
| max_connections | 151 |
+-----------------+----------------+
1 row in set (0.00 sec)
mysql> show variables like '%max_connections%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| max_connections | 151 |
| mysqlx_max_connections | 100 |
+------------------------+-------+
2 rows in set (0.01 sec)
scutech@scutech:~$ cat /mysql/data/mysqld-auto.cnf
{ "Version" : 1 , "mysql_server" : { "max_connections" : { "Value" : "151" , "Metadata" : { "Timestamp" : 1583911527762399 , "User" : "root" , "Host" : "localhost" } } } }
这个命令同“set global max_connections=default”类似,都会将变量的值设置为默认值,只不过前者还会将默认值持久化到配置文件中。
清空持久化变量
对于已经持久化了变量,可通过reset persist命令清除掉,注意,其只是清空mysqld-auto.cnf和performance_schema.persisted_variables中的内容,对于已经修改了的变量的值,不会产生任何影响。
mysql> reset persist;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from performance_schema.variables_info where variable_source like 'PERSISTED'\G
Empty set (0.04 sec)
cat /mysql/data/mysqld-auto.cnf
{ "Version" : 1 , "mysql_server" : { } }
修改只读变量
但是对于read only 的参数,修改参数后需要重启才能生效
mysql> set persist innodb_log_file_size=2073741824;
ERROR 1238 (HY000): Variable 'innodb_log_file_size' is a read only variable
mysql> set persist_only innodb_log_file_size=2073741824;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'innodb_log_file_size';
+----------------------+-----------+
| Variable_name | Value |
+----------------------+-----------+
| innodb_log_file_size | 104857600 |
+----------------------+-----------+
1 row in set (0.02 sec)
mysql> restart ;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'innodb_log_file_size';
No connection. Trying to reconnect...
Connection id: 8
Current database: *** NONE ***
+----------------------+------------+
| Variable_name | Value |
+----------------------+------------+
| innodb_log_file_size | 2073034752 |
+----------------------+------------+
1 row in set (0.02 sec)
mysql> select * from performance_schema.variables_info where variable_source like 'PERSISTED'\G
*************************** 1. row ***************************
VARIABLE_NAME: innodb_log_file_size
VARIABLE_SOURCE: PERSISTED
VARIABLE_PATH: /mysql/data/mysqld-auto.cnf
MIN_VALUE: 4194304
MAX_VALUE: 18446744073709551615
SET_TIME: 2020-03-11 15:55:20.334556
SET_USER: root
SET_HOST: localhost
1 row in set (0.01 sec)
mysql> system cat /mysql/data/mysqld-auto.cnf
{ "Version" : 1 , "mysql_server" : { "mysql_server_static_options" : { "innodb_log_file_size" : { "Value" : "2073741824" , "Metadata" : { "Timestamp" : 1583913320334556 , "User" : "root" , "Host" : "localhost" } } } } }mysql>
mysql> system ls -lh /mysql/data/ib_logfile*
-rw-r----- 1 mysql mysql 2.0G Mar 11 15:56 /mysql/data/ib_logfile0
-rw-r----- 1 mysql mysql 2.0G Mar 11 15:56 /mysql/data/ib_logfile1
将mysql的变量置为0_MySQL 8.0 全局变量的修改持久化 set persist相关推荐
- MySQL中变量的定义和变量的赋值使用(转)
说明:现在市面上定义变量的教程和书籍基本都放在存储过程上说明,但是存储过程上变量只能作用于begin...end块中,而普通的变量定义和使用都说的比较少,针对此类问题只能在官方文档中才能找到讲解. 前 ...
- MySQL中变量的定义和变量的赋值使用
MySQL中变量的定义和变量的赋值使用 前言 MySQL存储过程中,定义变量有两种方式: 1.使用set或select直接赋值,变量名以@开头 例如: set @var=1; 可以在一个会话的任何地方 ...
- centos下加入mysql环境变量
centos下加入mysql环境变量 命令行的时候每次都要进入mysql的目录/usr/local/mysql/bin太麻烦了,为了能在任何一个位置直接进入,设置一下环境变量即可 vi /etc/pr ...
- mysql session变量_mysql 系统变量和session变量
mysql系统变量包括全局变量(global)和会话变量(session),global变量对所有session生效,session变量包括global变量.mysql调优必然会涉及这些系统变量的调整 ...
- 9、MySQL系统变量(查看和修改)
在 MySQL 数据库,变量分为系统变量和用户自定义变量.系统变量以 @@ 开头,用户自定义变量以 @ 开头. 服务器维护着两种系统变量,即全局变量(GLOBAL VARIABLES)和会话变量(SE ...
- mysql事务变量_mysql学习四之事务、变量、触发器、函数、存储过程
需求:有一张银行账户表,有A用户给B用户转账:A账户先减少,B账户增加,但是A操作完之后断电了. 解决方案:A减少钱,但是不要立即修改数据表:B收到钱之后,同时修改数据表 事务安全 事务:transa ...
- MySQL的内置函数
MySQL的内置函数 文章目录 MySQL的内置函数 1. 日期函数 2. 字符串函数 3. 数学函数 4. 其它函数 1. 日期函数 获得年月日: select current_date(); +- ...
- mysql数据库内置函数大全_MySQL数据库——内置函数
MySQL数据库--内置函数 建表并插入数据 create table student( id char(36) primary key, name varchar(8) not null, age ...
- MySQL 服务器变量 数据操作DML-视图
原文:MySQL 服务器变量 数据操作DML-视图 SQL语言的组成部分 常见分类: DDL:数据定义语言 DCL:数据控制语言,如授权 DML:数据操作语言 其它分类: 完整性定义语言:DDL的一部 ...
最新文章
- HTML5动态圆形导航,jQuery带动画特效的圆形导航菜单特效
- Hessian使用记录
- java after 函数_Java中关于Date的before函数和after函数的使用
- vscode写python_vscode如何编写python?
- 史诗巨作[关云长][高清BD-RMVB/992M][国语/中文字幕]
- C# Newtonsoft的使用
- 亿图图示专家Edraw Max v10.5.2 中文免费版(附安装教程)
- jsplumb入门教程及视频教程链接
- 量化金融经典理论、重要模型、发展简史大全
- uniapp push推送服务使用指南
- 人工智能发展历史概述
- 【Windows】电脑清理个人隐私数据信息
- 云主机是什么,怎么才能购买性价比高的云主机
- [经验教程]在拼多多上发起拼单和参与拼单有什么区别?
- 代码风格自动化(二)——husky + lint-staged
- ERROR : Error appeared during Puppet run: x.x.x.x _keystone.pp
- python埃及分数_送你一份低折扣书单,Python就占了6本,人工智能2本
- 算法导论程序24--直接寻址表(Python)
- 【1024面试必备】厂长爆肝万字之多线程高并发JUC编程⭐建议收藏
- ARM SIMD 指令集:NEON 简介