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=3306 | mysql的端口号 |
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_results | mysql发送给客户端所用的字符集 |
character_set_server | mysql server 默认字符集,这个变量建议由系统自己管理,不要人为定义。 |
character_set_system | 数据库系统使用的编码格式,这个值一直是utf8,不需要设置,它是为存储系统元数据的编码格式。 |
连接相关(connection)
参数 | 说明 |
---|---|
max_connections | mysql最大连接数,默认151,可通过命令:show processlist 查看连接数量,一行就是一个连接 |
max_user_connections | 限制每个用户的连接个数,默认为0,0表示不限制 |
back_log | 注意这不是日志,这是用来暂存连接的数量大小,默认是80个,当mysql线程在一个很短时间内得到非常多的连接请求时,就会起作用,连接数量超过 max_connections 所设置的值,多出来的连接就会存放到back_log中,当back_log也存不下时,就会拒接掉新的连接; |
wait_timeout | mysql在关闭一个长连接(非交互式连接)之前需要等待的时长 |
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因为内存不足而被移除出cacheQcache_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_size | mysql读入缓冲区大小,对表进行顺序扫描的请求将分配到一个读入缓冲区 |
read_md_buffer_size | mysql随机读的缓存区大小 |
innodb_file_per_table | 此参数确定为每张表分配一个新的文件;默认开启,如果关闭了,创建表之后,将不会产生后缀为.ibd的文件,他的数据会存储到ibdata1这个表空间文件中;最好是一张表一张文件; |
以上是关于mysql查看和修改系统参数的主要内容,如果未能解决你的问题,请参考以下文章
《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段
修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段