mysql配置文件构成以及具体的配置demo
一、前言
在了解完mysql
的各项配置参数,并且设计出适合自己(2
核8G
机器)的配置后,博主开始了正式的配置,不过在正式的配置过程中还是遇到了不少问题,这里记录一下配置文件的构成以及具体的配置demo
。
关于mysql
的配置参数相关,可以参考上一篇文章:mysql配置参数调优(8GB内存和64GB内存)
二、mysql配置文件位置
大家应该都知道,一般我们配置的my.cnf
都会放在/etc
下面,但是新安装的mysql
是需要我们自己找到配置文件的。
1、查看mysql配置文件位置
mysql --help | grep 'Default options' -A 1 //输入这条命令
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf //根据优先级,首先读取/etc/my.cnf,然后读取/etc/mysql/my.cnf 等
可以看到mysql
读取配置文件的顺序,我们可以去这些路径下找到我们的配置文件
2、本地配置文件位置
关于寻找配置文件的文章很多,这里就不一一细说了。参考:mysql 查看当前使用的配置文件my.cnf的方法 ,这里列出来我本地的配置文件位置,奇葩的位置。
(1) 首先是/etc/my.cnf 是不存在
(2) cat /etc/mysql/my.cnf
发现下面有句话:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/
意思就是具体的配置分散在xxconf.d
文件夹下。这里的conf.d
文件夹下是没什么东西,因为本地是mariadb数据库,所以配置文件在mariadb.conf.d
(3) 配置文件组成
/etc/mysql/mariadb.conf.d# ls
50-client.cnf 50-mysql-clients.cnf 50-mysqld_safe.cnf 50-server.cnf
这里可以根据文件名判断,原来咱们mysql
配置文件的[client]
,[mysqld]
,[mysqld_safe]
都在一个文件里面的,但是我这边默认的是分开配置了,这样总感觉不大好管理的样子,因此决定新建/etc/my.cnf
,在my.cnf
里面统一配置就完事了。
3、宏观上查看配置
mysqladmin variables -p
//输入数据库用户密码即可
这个命令列出来的是所有的参数,看着挺乱的,建议还是从配置文件看起吧,咱们只需要设置那些影响比较大的参数就可以,其他参数用mysql
默认的就足够了。
三、mysql配置文件具体构成以及配置demo
1、my.cnf的构成
mysql
读取配置文件的时候,如果咱们设置了参数,那设置的这部分参数的值就会改变。至于没有设置到的部分,采用的依旧是mysql
默认的参数。配置文件里面主要分为:
[client] :客户端参数,可以放一些共同使用的参数,比如编码格式等
[mysqld]:服务端参数,就是咱们上面列出来的这些参数,当然,还有mysql本身的一些配置
[mysqldump] : 导出文件时候使用的,是逻辑备份,备份时是执行的sql语句
[mysql]:mysql命令行工具设置
[mysqld_safe] :mysqld_safe程序调用mysqld程序来启动mysql服务,[mysqld_safe]会覆盖mysqld部分中的参数
[mysqlhotcopy] :mysqlhotcopy使用lock tables、flush tables和cp或scp来快速备份数据库.它是备份数据库或单个表最快的途径,完全属于物理备份,但只能用于备份MyISAM存储引擎和运行在数据库目录所在的机器上.
[myisamchk]:使用myisamchk实用程序来获得有关你的数据库桌表的信息、检查和修复他们或优化他们
以上我们在查看配置文件的时候,经常出现的几个分类,并不是强制要求全部配置它们,大家只需要知道这些分类都代表什么意思就好了。我们在需要修改的那些参数都在[mysqld]
下面。
[mysqld_safe]解释: 实际上的mysqld_safe
是一个启动脚本,用它启动实质是启动mysqld
守护进程,如果mysqld
不存在了,自动把mysqld
拉起来。mysqld_safe
可以读取my.cnf
文件的[mysqld]
,[mysqld_safe]
,[server]
,[safe_mysqld]
中配置,咱们在[mysqld_safe]
指定sock
文件位置就行。
2、配置demo
在/etc
下面新建my.cnf
,然后添加配置内容即可。
[client]
port=3306
default-character-set=utf8mb4
socket = /var/run/mysqld/mysqld.sock #根据自己sock文件的位置设置[mysqld]
character_set_server = utf8mb4
max_allowed_packet=32M
#interactive_timeout = 2880#新定义的
key_buffer_size=64M
table_open_cache=2048
sort_buffer_size=4M
net_buffer_length=16384
read_buffer_size=1M
read_rnd_buffer_size=512k
myisam_sort_buffer_size=128M
myisam_max_sort_file_size=10G
thread_cache_size=64
query_cache_size=0
tmp_table_size=32M
explicit_defaults_for_timestamp=ON
max_connections=5000
max_connect_errors=500000
open_files_limit=65535
expire_logs_days=10#innodb相关
innodb_file_per_table=1 #这里设置为on的话,值为1
innodb_data_file_path=ibdata1:12M:autoextend #格式不要错
innodb_buffer_pool_size =2G
innodb_log_file_size=256M
innodb_log_buffer_size=32M
innodb_flush_log_at_trx_commit=2
sync_binlog=1000
innodb_lock_wait_timeout=30
back_log= 500 [mysqldump]
# 不要在将内存中的整个结果写入磁盘之前缓存.
quick
max_allowed_packet = 32M[mysql]
auto-rehash # 开启tab补齐功能[mysqlhotcopy]
interactive-timeout[mysqld_safe]
# 增加每个进程的可打开文件数量.
# 警告: 确认你已经将全系统限制设定的足够高!
# 打开大量表需要将此值设b
open-files-limit = 65535
socket = /var/run/mysqld/mysqld.sock
这个配置文件在博主服务器是正常工作的,查看各项参数也都是咱们配置的大小。
四、运行配置文件出现的问题
1、innodb_data_file_path报错:
Could not open or create the system tablespace. If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to what it was
(1)出错原因
innodb_data_file_path
设置的不匹配。本来是打算设置innodb_data_file_path=ibdata1:64M:autoextend
,但是根据报错信息来看,设置的过于大了,和本来的ibdata1
的大小不一致。
(2)查看ibdata1的大小:
进入:/var/lib/mysql
,进入之后会发现一个ibdata1
文件,可以通过 ls -ll
查看文件大小。
这个文件大小mysql
官方在5.6.7
之前规定是10M
,5.6.7
之后是规定12M
。如果想要像mysql
服务器一样设置比较大一点的ibdata1
,那必须的要在建表之初就修改my.cnf
的innodb_data_file_path
参数。如果你是建表之后修改,那就会报错,改为12M
就不报错。
(3)innodb_file_per_table选项
在新版的Mysql
中已经通过innodb_file_per_table
这个选项来解决ibdata1
不够大的问题了,开启该选项后,每个InnoDB
表的索引和数据都会按*.ibd
命名存储到各个数据库中,这个参数默认不开启。不过咱们已经给他开启过了,所以大部分情况还是可以顶得住的,嫌麻烦的话,这个innodb_file_per_table
设置打开,然后就不用管innodb_data_file_path
的设置了,用默认的就行。如果不嫌麻烦的话,
参考:https://www.cnblogs.com/MYSQLZOUQI/p/3654644.html 大概就是先导表导数据,然后设置mysql
参数,设置完再把表导入进去。
2、mysql的auto-rehash
(1)prompt=[\h][\u]@\d\r:\m:\s
这个参数博主看到有人是配置了的,不过个人感觉没必要设置,设置完进去mysql
会自动带上host
和user
:,效果十分恐怖,例如:3: >host][ljf]@(none)
,很丑的。。
(2)auto-rehash
开启tab
补齐功能,设置自动补齐的话,启动要带上参数,例如:mysql –uroot -p --auto-rehash
经过试验,这个参数没啥用,只能自动补全表名,如果表名很长,表很多的话,可以试试。
3、设置成功
MariaDB [hx]> show global variables like 'innodb_buffer_pool_size';
+-------------------------+------------+
| Variable_name | Value |
+-------------------------+------------+
| innodb_buffer_pool_size | 2147483648 |
+-------------------------+------------+
缓冲区已经是2G
了,代表新配置的参数生效。
end
mysql配置文件构成以及具体的配置demo相关推荐
- haproxy mysql配置文件详解_HAProxy基础配置-haproxy的配置文件说明
defaults [] 默认配置项,针对以下的frontend.backend和lsiten生效,可以多个name. defaults常用的配置参数: option redispatch 当serve ...
- mysql 需要什么硬件配置_如何来给指定的硬件环境配置一份比较合理的MySQL配置文件-爱可生...
简介 通过sysbench的oltp_read_write测试来模拟业务压力.以此来给指定的硬件环境配置一份比较合理的MySQL配置文件. 环境介绍 硬件配置 软件环境 优化层级与指导思想 优化层级 ...
- 织梦 mysql 配置文件_MySQL集群配置
一.介绍 ======== 这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽然这是基于2台服务器的MySQL集 ...
- linux 安装nginx php mysql 配置文件在哪_linux下 php+nginx+mysql安装配置
我主要是用来安装php,以及nginx和php的交互. 一 安装插件 可以选择YUM安装或者源码编译安装gccgcc-c++zlib pcre pcre-devel libevent libevent ...
- linux 配置 mysql_linux下mysql配置文件my.cnf最详细解释
MySQL配置文件在Windows下叫my.ini,在MySQL的安装根目录下:在Linux下叫my.cnf,该文件位于/etc/my.cnf. 可以查找下:find / -name my.cnf m ...
- php连接数据库配置优化,小蚂蚁学习mysql性能优化(9)--操作系统配置优化--mysql配置文件优化...
操作系统配置优化 数据库是基于操作系统的,目前大多数mysql都是安装在linux系统之上,所以对于操作系统的一些参数配置也会影响到mysql的性能 网络方面的配置修改 \etc\sysctal ...
- MySQL 5.7 多实例单配置 多实例多配置文件安装 | 资料
01 MySQL 5.7 多实例单配置文件安装 1.创建mysql用户以及组 groupadd mysql useradd -r -g mysql -s /bin/false mysql 2.创建My ...
- Mysql配置文件my.cnf配置及配置参数详解
Mysql配置文件my.cnf 安装了mysql没有my.cnf文件的情况 1.可以把mysql的示例配置文件,如my-medium.cnf拷贝到/etc/my.cnf,再去修改/etc/my.cnf ...
- Mac下mysql配置文件没有my-default.cnf,无法配置my.cnf
Mysql不提供my-default.cnf文件的版本 官网说:从5.7.18开始不在二进制包中提供my-default.cnf文件. 针对用户 针对mac端,并且没有my-default.cnf的用 ...
最新文章
- Efficient Hybrid De Novo Error Correction and Assembly for Long Reads
- 关于win8/win8.1系统不能调节亮度的解决办法
- 服务器事件刷新消息,Windows Server 2003 中的 DNS 事件消息 1616 到 6702
- 全国计算机等级考试题库二级C操作题100套(第52套)
- 自动化测试框架:没有Surprise的原因
- Bootstrap-select使用说明
- 更改linux主机名称
- 富士施乐m115b怎么连接电脑_富士施乐m115b打印机驱动下载-富士施乐m115b驱动下载 v1.0.1.00官方版--pc6下载站...
- 带有Lowe’s算法的SURF特征提取和匹配
- 【基于物理的渲染(PBR)白皮书】(三) 迪士尼原则的BRDF与BSDF相关总结
- 北京理工大学计算机面试题,北京理工大学自主招生面试试题综合素质答案技巧.doc...
- 类360极速浏览器官网html
- 历届图灵奖和马尔奖获得者
- matlab 不允许函数定义,MATLAB中此上下文中不允许出现函数定义,急求~
- Unity基础 Unity获取当前时间的时间戳
- 最新最全移动端界面设计UI尺寸规范-2018年初版
- MySQL -- 插入56个民族
- 【Qzone】向来缘浅 奈何情深 第三步 编译Android内核源代码
- 【毕业设计系列】009:调频通信系统(相干解调非相干解调)仿真界面实现
- 重拾Android之路(五)RxJava和RxAndroid