1、指定配置文件位置
MySQL实例启动需要依赖my.cnf配置文件,而配置文件可以存在于多个操作系统目录下my.cnf文件的默认查找路径,从上到下找到的文件先读,但优先级逐级提升。
每个文件都可以找到,相同的配置项最后加载的生效。
![](https://box.kancloud.cn/6b386ff55c1c27ee9824a851e78cfb7b_760x301.png)
2、系统表空间数据文件配置
可以通过innodb_data_file_path和innodb_data_home_dir来配置系统表空间数据文件
Innodb_data_file_path可以包含一个或多个数据文件,中间用;号分开
innodb_data_file_path=datafile_spec1[;datafile_spec2]...
datafile_spec1 = file_name:file_size[:autoextend[:max:max_file_size]]
其中autoextend和max选项只能用作最后的这个数据文件。Autoextend默认情况下是一次增加64MB,如果要修改此值可通过innodb_autoextend_increment参数。Max用来指定可扩展数据文件的最大容量用来避免数据文件大小超过可用磁盘空间大小。
举例如下:
[mysqld]
innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend
表示指定ibdata1和ibdata2两个数据文件,其中ibdata1文件为固定的50M大小,而ibdata2文件初始化为50M并可自动扩展容量
[mysqld]
innodb_data_file_path=ibdata1:12M:autoextend:max:500M
innodb_data_home_dir参数用来显示指定数据文件的存储目录,默认是MySQL安装后的数据文件目录,举例如下:
[mysqld]
innodb_data_home_dir = /path/to/myibdata/
innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend
当然也可以在innodb_data_file_path中指定绝对路径的数据文件
[mysqld]
innodb_data_home_dir =
innodb_data_file_path=/path/to/myibdata/ibdata1:50M;/path/to/myibdata/ibdata2:50M:autoextend
3、日志文件配置
默认情况下InnoDB会在数据文件夹下创建两个48M的日志文件,分别是ib_logfile0和ib_logfile1。
Innodb_log_group_home_dir参数用来定义redo日志的文件位置
mysql> show variables like '%innodb_log_file%';
+---------------------------+----------+
| Variable_name | Value |
+---------------------------+----------+
| innodb_log_file_size | 50331648 |
| innodb_log_files_in_group | 2 |
+---------------------------+----------+
[mysqld]
innodb_log_group_home_dir = /dr3/iblogs
innodb_log_files_in_group参数用来定义日志文件的个数,默认和推荐值都是2
innodb_log_file_size参数定义了每个日志文件的大小,日志文件越大意味着buffer pool进行文件间切换的操作越少,从而减少IO,一般至少要保证在高峰期的1小时内的所有日志都能存放在一个日志文件里而不发生切换,当然文件大小也有最大限制,就是所有日志文件的总大小不能超过512G
4、Undo表空间配置
默认情况下,undo日志是存放在系统表空间里,但也可以选择在独立的一个或多个undo表空间中存放undo日志
Innodb_undo_directory参数决定了独立的undo表空间存放目录
Innodb_undo_logs参数决定了回滚段的个数,该变量可以动态调整
Innodb_undo_tablespaces参数决定了独立undo表空间的个数,比如设置为16时则会在undo表空间存放目录下创建16个undo文件,默认为10M
mysql> show variables like '%innodb_undo%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| innodb_undo_directory | ./ |
| innodb_undo_log_truncate | OFF |
| innodb_undo_logs | 128 |
| innodb_undo_tablespaces | 0 |
5、临时表空间配置
默认情况下,innodb会创建一个自增长的ibtmp1文件在数据文件夹下作为临时表空间数据文件。
Innodb_temp_data_file_path参数可以指定文件路径,文件名和文件大小
mysql> show variables like '%innodb_temp%';
+----------------------------+-----------------------+
| Variable_name | Value |
+----------------------------+-----------------------+
| innodb_temp_data_file_path | ibtmp1:12M:autoextend |
+----------------------------+-----------------------+
6、数据页配置
Innodb_page_size参数用来指定所有innodb表空间的数据页大小。默认是16K大小,也可以设置为64K、32K、8K和4K。一般设置为存储磁盘的block size接近的大小.
7、内存相关配置
Innodb_buffer_pool_size参数确定了缓存表数据和索引数据的内存区域大小,默认为128M,推荐设置为系统内存的50%~80%。
在服务器有大量内存的情况下,也可以设置多个缓存以提高系统并发度。Innodb_buffer_pool_instances参数就是用来做这个设置。
Innodb_log_buffer_size参数确定了redo log缓存的大小,默认值是16M,其大小取决于是否有某些大的事务会大量修改数据而导致在事务执行过程中就要写日志文件。
8、InnoDB只读设置
InnoDB可以通过—innodb-read-only参数设置数据表只能读取
[mysqld]
innodb-read-only=1
mysql> update temp set id2=100;
ERROR 1015 (HY000): Can't lock file (errno: 165 - Table is read only)
- 一、日常运维脚本
- 1.1 批量创建用户并赋予sudo权限
- 1.2 批量主机建立互信
- 1.3create_images.sh
- 1.4monitor.sh
- 1.5ftp脚本
- 1.6格式化分区
- 1.7简单的远程执行脚本
- 二、常用服务使用
- 1 ceph (分布式文件系统)
- 1.1 ceph 简介
- 1.2 准备环境
- 1.3 开始部署
- 1.4 cephfs挂载
- 1.5 RBD块存储
- 1.6 object 对象存储
- 1.7 集群扩展
- 1.7.1 增加删除MON
- 1.7.2 增加删除OSD
- 1.7.3 删除MDS
- 注意事项
- 遇到的问题
- 1.8ceph查找数据文件
- 1.9卸载并清理环境
- 2、mysql (数据库)
- 2.1 搭建
- 2.2 使用教程
- 2.2.1 mysql基础配置
- 2.2.1.1 用户权限管理
- 2.2.1.2用户资源限制
- 2.2.1.3 密码管理
- 2.2.1.4用户lock
- 2.2.2mysql语法详解
- 2.2.1建库、表语句
- 2.2.2.2 插入 insert
- 2.2.2.3更新 update
- 2.2.2.4删除 delete
- 2.2.2.5查询 select
- 2.2.6视图 索引 view index
- 2.2.7 修改 alert
- 2.2.2.8清理 truncate drop
- 2.2.9重命名 rename
- 示例语句
- 2.2.3mysql常用函数
- 2.3.1 对比操作符统概
- 2.3.2对比操作符详解
- 2.3.3逻辑操作符
- 2.2.4分配操作符
- 2.2.5流程控制函数
- 2.2.6字符串函数
- 2.2.7字符串对比函数
- 2.2.8数字函数
- 2.2.9日期和时间函数
- 2.2.10聚合/格式转换函数
- 2.2.11 子查询
- 示例语句
- 2.2.4 mysql 高级应用
- 2.2.4.1 存储过程 函数
- 2.2.4.2流程控制
- 2.2.4.3游标
- 2.2.4.4触发器
- 课堂练习
- 2.2.2.5 数据库设计
- 2.2.5.1 数据类型
- 2.2.5.2存储引擎
- 2.2.6Innodb内核
- 1、innodb事务和多版本控制
- 2、体系结构
- 3、InnoDB配置
- 4、buffer pool设置
- 5、其他配置
- innodb限制
- 2.7 字符集
- 2.8锁机制和事务
- 2.8.1锁机制
- 2.8.2事务
- 2.9分区
- 2.9.1 自动分区
- 2.10复制
- 2.11mysql搬移数据目录
- 2.12组复制 GR
- 简介
- 搭建
- 2.3日常运维
- 2.3.1定时任务
- 2.4mycat
- 2.4.1 报错分析
- 2.4.2 修改字符集
- 2.11 mycat使用
- 2.5遇到问题
- 2.5.1 表名库名忽略大小写
- 3、PAAS平台搭建
- 问题汇总
- 1、docker
- 2、日常运维
- 3.1 Kubernetes
- 3.1 kubernetes 高版本搭建
- 4、GlusterFS搭建
- 5、MooseFS搭建
- 5.1搭建
- 5.2运维
- 5.2.1 mfs日志解析
- 5.2.2清理mfs的垃圾数据
- 5.2.3元数据故障恢复
- 5.2.4 MFS优化
- 5.2.5 配置机架感知
- 5.2.6 客户端工具集
- 6、集群切换命令
- 7、ntp服务
- 8、monggoDB
- 8.1搭建单机
- 2、搭建集群及分片
- 9、MariaDB Galera Cluster
- 9.1源码安装MariaDB
- 9.2galera cluster 优劣
- 9.3 rpm安装mariadb
- 10 HAproxy1.7搭建
- 11、sysbench 搭建使用
- 0.5版本
- 12 percona-xtradb-cluster
- 13http服务相关
- 13.1 http状态码解析
- 14 zookeeper
- 14.1 zookeeper日志查看
- 14.2 配置解析
- 14.3 优化
- 15搭建私有pip源
- 16/var/log的日志文件解释
- 15 ansible的搭建及使用
- 15.1 搭建
- 15.2 使用说明
- 16. 搭建本地yum源
- zookeeper
- 优化
- 四、开发语言
- 1、GO语言
- 1.1go简介
- 1.1.1hello_world初识GO
- 1.1.2并发介绍
- 1.1.3 chan介绍
- 1.1.4多返回值
- 1.2go基础
- 1.2.1数据类型
- 1.2.2 go基础结构
- 1.2.3 const及变量介绍
- 1.2.3os和time介绍
- 1.2.4 字符串
- 1.2.5条件判断
- 1.2.6 homework
- go--help
- 1.3 go基础2
- 1.3.1 数组 array
- 1.3.2切片 slice
- 1.3.3 时间和日期
- 1.3.4指针类型
- 1.3.5函数
- 1.3.6可变参数
- 1.3.7 defer
- 1.3.8递归
- 1.9闭包
- 1.10 map
- 1.11 sort
- 1.12 struct 结构体
- 2.perl语言
- 2.1 安装lib包
- 3 python
- 1.语言基础
- 2、编程教学
- 2.1变量和序列
- 2.2 条件语句