开发者社区> jephon> 正文

MYSQL数据库的参数文件

简介: 参数文件:告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型。 参数文件 当MySQL实例启动时,MySQL会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等设置。
+关注继续查看

参数文件:告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型。

参数文件

当MySQL实例启动时,MySQL会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等设置。默认情况下,MySQL实例会按照一定的次序去取,你只需通过命令mysql --help|grep my.cnf来寻找即可。

MySQL参数文件的作用和Oracle的参数文件极其类似;不同的是,Oracle实例启动时若找不到参数文件,是不能进行装载(mount)操作的。MySQL稍微有所不同,MySQL实例可以不需要参数文件,这时所有的参数值取决于编译MySQL时指定的默认值和源代码中指定参数的默认值。但是,如果MySQL在默认的数据库目录下找不到mysql架构,则启动同样会失败,你可能在错误日志文件中找到如下内容:

090922 16:25:52 mysqld started
090922 16:25:53 InnoDB:Started;log sequence number 8 2801063211
InnoDB:!innodb_force_recovery is set to 1090922 16:25:53[ERROR]Fatal error:Can't open and lock privilege tables:Table
'mysql.host'doesn't exist
090922 16:25:53 mysqld ended

MySQL中的mysql架构中记录了访问该实例的权限,当找不到这个架构时,MySQL实例不会成功启动。

和Oracle参数文件不同的是,Oracle的参数文件分为二进制的参数文件(spfile)和文本类型的参数文件(init.ora),而MySQL的参数文件仅是文本的,方便的是,你可以通过一些常用的编辑软件(如vi和emacs)进行参数的编辑。

参数的基本概念和操作

可以把数据库参数看成一个键/值对。可以通过show variables查看所有的参数,或通过like来过滤参数名。

从MySQL 5.1版本开始,可以通过information_schema架构下的GLOBAL_VARIABLES视图来进行查找,如下所示:

select * from GLOBAL_VARIABLES where VARIABLE_NAME like 'innodb_buffer%'\G;

show variables like 'innodb_buffer%'\G

Oracle的参数有所谓的隐藏参数(undocumented parameter),以供Oracle“内部人士”使用,SQL Server也有类似的参数。有些DBA曾问我,MySQL中是否也有这类参数。我的回答是:没有,也不需要(其实是有)。即使Oracle和SQL Server中都有些所谓的隐藏参数,在绝大多数情况下,这些数据库厂商也不建议你在生产环境中对其进行很大的调整。

参数类型

MySQL参数文件中的参数可以分为两类:动态(dynamic)参数和静态(static)参数。动态参数意味着你可以在MySQL实例运行中进行更改;静态参数说明在整个实例生命周期内都不得进行更改,就好像是只读(read only)的。

可以通过SET命令对动态的参数值进行修改,SET的语法如下:

SET 

  | [global|session] system_var_name=expr 

  | [@@global.|@@session.|@@] system_var_name=expr

这里可以看到global和session关键字,它们表明该参数的修改是基于当前会话还是整个实例的生命周期

有些动态参数只能在会话中进行修改,如autocommit;

有些参数修改完后,在整个实例生命周期中都会生效,如binlog_cache_size;

而有些参数既可以在会话又可以在整个实例的生命周期内生效,如read_buffer_size。

举例如下:

set read_buffer_size=524288;

select @@session.read_buffer_size\G;

select @@global.read_buffer_size\G;

将read_buffer_size的会话值从2MB调整为了512KB,可以看到全局的read_buffer_size的值仍然是2MB,也就是说,如果有另一个会话登录到MySQL实例,它的read_buffer_size的值是2MB,而不是512KB。这里使用了set global|session来改变动态变量的值。

使用set @@global|@@session来更改

set @@global.read_buffer_size=1048576;

select @@session.read_buffer_size\G;

select @@global.read_buffer_size\G;

把read_buffer_size全局值更改为1MB,而当前会话的read_buffer_size的值还是512KB。这里需要注意的是,对变量的全局值进行了修改,在这次的实例生命周期内都有效,但MySQL实例本身并不会对参数文件中的该值进行修改。也就是说下次启动时,MySQL实例还是会读取参数文件。如果你想让数据库实例下一次启动时该参数还是保留为当前修改的值,则必须修改参数文件。要想知道MySQL所有动态变量的可修改范围,参考MySQL官方手册的(Dynamic System Variables)的相关内容。

对于静态变量,如果对其进行修改,会得到类似如下的错误

set global datadir='/db/mysql';

ERROR 1238(HY000):Variable'datadir'is a read only variable

 

 

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL日志参数配置简介
一、全日志配置 记录所有的操作信息和登录信息;只有在全日志功能打开的时候才会记录,否则不做任何记录。 1、参数相关设置 general_log=ON |OFF (开启或关闭,也可以用0或1) grneral_log_file=/data/mysql/JSH-01.
1736 0
5.中文问题(自身,操作系统级别,应用软件的本身),mysql数据库备份
 第一层因素:          mysql的自身的设置          mysql有六处使用了字符集,分别为:client 、connection、database、results、server 、system。          mysql>show variables like 'character%'; +------------
1128 0
提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances
提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances
56 0
MYSQL数据库的套接字文件,pid文件,表结构文件
socket文件:当用Unix域套接字方式进行连接时需要的文件。 pid文件:MySQL实例的进程ID文件。 MySQL表结构文件:用来存放MySQL表结构定义文件。 套接字文件 Unix系统下本地连接MySQL可以采用Unix域套接字方式,这种方式需要一个套接字(socket)文件。
808 0
参考---创建sql数据库复制的发布、订阅的问题处理
操作使用的一些技巧(事务复制类型):1.如何修改一个已经发布的表的属性?将发布所有订阅删除,(发布不用删除),就可以在发布属性的项目中取消表,然后就 可以修改该表了,修改后,再将表加入发布内就可以了.
957 0
MySQL 8.0 首个自适应参数横空出世
MySQL 8.0 首个自适应参数横空出世 什么是自适应参数 MySQL8.0推出一个号称可以自适应服务器的参数,保证在各种不同的服务器、虚拟机、容器下自动适配服务器资源,让我们一起来看看到底它能做到什么地步。
1685 0
SQL SERVER数据库删除LOG文件和清空日志的方案
原文:SQL SERVER数据库删除LOG文件和清空日志的方案 数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作。
5091 0
+关注
jephon
一直在路上..........
390
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载