mysql查看和修改系统参数

Posted java叶新东老师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql查看和修改系统参数相关的知识,希望对你有一定的参考价值。

mysql 参数

MySQL提供了相当多的系统参数,涉及方方面面。我们可以使用show关键字来查看:

show variables like '%autocommit%';
或者
show status like '%xxx%';

修改参数值

mysql有一些参数是可以直接修改的,比如mysql的自动提交是默认开启,我们修改为关闭自动提交

set autocommit = 1;

当然也有些系统参数不能直接修改里面的值,当我们修改时会报错,就像这样:

mysql> set @@ft_max_word_len = 1;
ERROR 1238 (HY000): Variable 'ft_max_word_len' is a read only variable

所以只能在配置文件中配置,配置参数后必须重启mysql方可生效

  • windows版本的mysql配置文件为 my.ini文件
  • linux版本的mysql配置文件为my.cnf 文件

[mysql] 参数说明

以下参数需要加到[mysql]下面

参数说明
datadir=/xxx/xxx数据文件存放目录
socket=/xx/xx/mysql.socket本地连接文件,通过localhost来连接mysql需要用到的文件
pid_file存储mysql的pid,可通过此id杀死mysql进程
port=3306mysql的端口号
default_storage_engine=Innodb存储引擎
skip_grant_tables使登录时跳过权限检查;登录mysql时,不需要密码就可以登录了:mysql -u root -p

字符相关

参数说明
character_set_client=GBK客户端字符集
character_set_connection处理客户端发来信息的编码格式
character_set_database数据库默认的字符集
character_set_filesystem文件系统的编码格式,把操作系统上的文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的
character_set_resultsmysql发送给客户端所用的字符集
character_set_servermysql server 默认字符集,这个变量建议由系统自己管理,不要人为定义。
character_set_system数据库系统使用的编码格式,这个值一直是utf8,不需要设置,它是为存储系统元数据的编码格式。

连接相关(connection)

参数说明
max_connectionsmysql最大连接数,默认151,可通过命令:show processlist查看连接数量,一行就是一个连接
max_user_connections限制每个用户的连接个数,默认为0,0表示不限制
back_log注意这不是日志,这是用来暂存连接的数量大小,默认是80个,当mysql线程在一个很短时间内得到非常多的连接请求时,就会起作用,连接数量超过 max_connections所设置的值,多出来的连接就会存放到back_log中,当back_log也存不下时,就会拒接掉新的连接;
wait_timeoutmysql在关闭一个长连接(非交互式连接)之前需要等待的时长
interactive_timeout关闭一个短连接(交互式连接)需要等待的秒数

日志相关(log)

参数说明
log_error指定错误日志文件名称和存放路径,用于记录mysql启动和停止时、以及服务器在运行中出现严重错误时的相关信息
log_bin指定二进制日志文件名称和路径,用于记录所有对数据更改的sql语句;默认是关闭的,使用主从复制时,这个开关一定要开启。另外,如果数据丢失了,可通过此文件恢复数据,所以说,建议随时开启这个开关;只要配上路径就会自动打开:log-bin=/bin/mysql.bin
binlog_do_db指定更新到二进制日志的库,比如我指定binlog_do_db=test,就只会将test库中的数据记录到二进制日志中,其他库都不记录,如果要设置多个库,就得分2行来配置:binlog_do_db=test,binlog_do_db=xx
binlog_ignore_db指定不记录到二进制日志的库,
sync_binlog指定多少次写日志后同步磁盘,用户修改数据后,会先将日志存在缓存中,每隔一段时间将缓存中的数据同步到磁盘中进行持久化存储;
general_log是否开启查询日志记录,默认关闭
general_log_file查询日志记录文件存放地址;记录所有的查询语句
slow_query_log是否开启慢查询日志记录
slow_query_log_file指定慢查询日志文件名称, 用于记录耗时比较长的查询语句
long_query_time设置慢查询的时间,超过这个时间的查询语句就会被记录到show_query_log指定的文件中,
log_show_admin_statements是否将管理语句写入慢查询日志

缓存相关(cache)

参数说明
key_buffer_size索引缓存区大小,只对myisam起作用,默认8M,一般情况下,默认值够用了
query_cache_size查询缓存大小,mysql8.0以上版本已被删除
  show status like '%Qcache%'查看缓存的相关属性
  Qcache_free_blocks:缓存中相邻内存块的个数,如果值比较大,那么查询缓存中碎片比较多
  Qcache_free_memory:查询缓存中剩余的内存大小
  Qcachae_hits:表示有多少次命中缓存
  Qcache_inserts:表示多少次未命中而插入
  Qcache_lowmen_prunes:多少条query因为内存不足而被移除出cache
  Qcache_queries_in_cache:当前cache中缓存的query数量
  Qcache_total_blocks:当前cache中block的数量
query_cache_limit超过此大小将不被缓存
query_cache_min_res_unit缓存块最小值
query_cache_type缓存类型,决定缓存什么样的查询,默认是关闭的,一共有三个值
0:禁用
1:将缓存所有的结果,除非sql中使用sql_no_cache禁用查询缓存
2:只缓存select语句中通过sql_cache指定需要缓存的查询
sort_buffer_size每个线程需要排序的线程分配该大小的缓冲区
max_allowed_packet=32M限制server接收的数据包大小
join_buffer_size=2M表示关联缓存的大小,join连表没有索引的时候会使用的缓存
thread_cache_size这个和java的线程池很像,就是线程在用完之后不会马上销毁,而是先存起来,下次可以直接使用,省去了开启线程的开销
Threads_cached:代表当前此时此刻线程缓存中有多少空闲线程
Threads_connected:代表当前已建立连接的数量
Threads_created:代表最近一次服务驱启动,已创建线程的数量,如果该值比较大,那么服务器会一直再创建线程;
Threads_running:代表当前激活的线程数

innodb相关

参数说明
innodb_buffer_pool_size该参数可以设置指定大小的内存来缓冲数据和索引,最大可以设置为物理内存的80%
innodb_flush_log_at_trx_commit主要控制innodb将log buffer中的数据写入日志文件并flush磁盘的时间点,值分别为:0,1,2
innodb_thread_concurreney设置innodb线程的并发数,设为0表示不限制,如果要设置建议设为cpu核心数一直,或者是cpu核心数的2倍
innodb_log_buffer_size此参数确定日志文件所用的内存大小,单位:M
innodb_log_file_size此参数确定数据日志爱文件的大小,单位:M
innodb_log_files_in_group以循环方式将日志文件写入到多个文件中
read_buffer_sizemysql读入缓冲区大小,对表进行顺序扫描的请求将分配到一个读入缓冲区
read_md_buffer_sizemysql随机读的缓存区大小
innodb_file_per_table此参数确定为每张表分配一个新的文件;默认开启,如果关闭了,创建表之后,将不会产生后缀为.ibd的文件,他的数据会存储到ibdata1这个表空间文件中;最好是一张表一张文件;

以上是关于mysql查看和修改系统参数的主要内容,如果未能解决你的问题,请参考以下文章

mysql 如何修改参数

《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段

linux中怎么查看mysql数据库版本

修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段

查看发票组代码后的总结和有感

mysql查看版本的四种方法