一、前言

在了解完mysql的各项配置参数,并且设计出适合自己(28G机器)的配置后,博主开始了正式的配置,不过在正式的配置过程中还是遇到了不少问题,这里记录一下配置文件的构成以及具体的配置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之前规定是10M5.6.7之后是规定12M。如果想要像mysql服务器一样设置比较大一点的ibdata1,那必须的要在建表之初就修改my.cnfinnodb_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会自动带上hostuser:,效果十分恐怖,例如: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相关推荐

  1. haproxy mysql配置文件详解_HAProxy基础配置-haproxy的配置文件说明

    defaults [] 默认配置项,针对以下的frontend.backend和lsiten生效,可以多个name. defaults常用的配置参数: option redispatch 当serve ...

  2. mysql 需要什么硬件配置_如何来给指定的硬件环境配置一份比较合理的MySQL配置文件-爱可生...

    简介 通过sysbench的oltp_read_write测试来模拟业务压力.以此来给指定的硬件环境配置一份比较合理的MySQL配置文件. 环境介绍 硬件配置 软件环境 优化层级与指导思想 优化层级 ...

  3. 织梦 mysql 配置文件_MySQL集群配置

    一.介绍 ======== 这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽然这是基于2台服务器的MySQL集 ...

  4. linux 安装nginx php mysql 配置文件在哪_linux下 php+nginx+mysql安装配置

    我主要是用来安装php,以及nginx和php的交互. 一 安装插件 可以选择YUM安装或者源码编译安装gccgcc-c++zlib pcre pcre-devel libevent libevent ...

  5. linux 配置 mysql_linux下mysql配置文件my.cnf最详细解释

    MySQL配置文件在Windows下叫my.ini,在MySQL的安装根目录下:在Linux下叫my.cnf,该文件位于/etc/my.cnf. 可以查找下:find / -name my.cnf m ...

  6. php连接数据库配置优化,小蚂蚁学习mysql性能优化(9)--操作系统配置优化--mysql配置文件优化...

    操作系统配置优化 数据库是基于操作系统的,目前大多数mysql都是安装在linux系统之上,所以对于操作系统的一些参数配置也会影响到mysql的性能 网络方面的配置修改    \etc\sysctal ...

  7. MySQL 5.7 多实例单配置 多实例多配置文件安装 | 资料

    01 MySQL 5.7 多实例单配置文件安装 1.创建mysql用户以及组 groupadd mysql useradd -r -g mysql -s /bin/false mysql 2.创建My ...

  8. Mysql配置文件my.cnf配置及配置参数详解

    Mysql配置文件my.cnf 安装了mysql没有my.cnf文件的情况 1.可以把mysql的示例配置文件,如my-medium.cnf拷贝到/etc/my.cnf,再去修改/etc/my.cnf ...

  9. Mac下mysql配置文件没有my-default.cnf,无法配置my.cnf

    Mysql不提供my-default.cnf文件的版本 官网说:从5.7.18开始不在二进制包中提供my-default.cnf文件. 针对用户 针对mac端,并且没有my-default.cnf的用 ...

最新文章

  1. Efficient Hybrid De Novo Error Correction and Assembly for Long Reads
  2. 关于win8/win8.1系统不能调节亮度的解决办法
  3. 服务器事件刷新消息,Windows Server 2003 中的 DNS 事件消息 1616 到 6702
  4. 全国计算机等级考试题库二级C操作题100套(第52套)
  5. 自动化测试框架:没有Surprise的原因
  6. Bootstrap-select使用说明
  7. 更改linux主机名称
  8. 富士施乐m115b怎么连接电脑_富士施乐m115b打印机驱动下载-富士施乐m115b驱动下载 v1.0.1.00官方版--pc6下载站...
  9. 带有Lowe’s算法的SURF特征提取和匹配
  10. 【基于物理的渲染(PBR)白皮书】(三) 迪士尼原则的BRDF与BSDF相关总结
  11. 北京理工大学计算机面试题,北京理工大学自主招生面试试题综合素质答案技巧.doc...
  12. 类360极速浏览器官网html
  13. 历届图灵奖和马尔奖获得者
  14. matlab 不允许函数定义,MATLAB中此上下文中不允许出现函数定义,急求~
  15. Unity基础 Unity获取当前时间的时间戳
  16. 最新最全移动端界面设计UI尺寸规范-2018年初版
  17. MySQL -- 插入56个民族
  18. 【Qzone】向来缘浅 奈何情深 第三步 编译Android内核源代码
  19. 【毕业设计系列】009:调频通信系统(相干解调非相干解调)仿真界面实现
  20. 重拾Android之路(五)RxJava和RxAndroid

热门文章

  1. MVC--Rzaor--例子
  2. PCL谢谢笔记 体素栅格滤波(下采样)
  3. python 美颜人脸
  4. python多边形裁剪
  5. 证明sinx/x的极限等于1(x趋向于0)
  6. Python递归实现快速排序
  7. elecV2P实现任务定时通知
  8. SSH原理之图文详解
  9. 三十二、数据库设计的三范式【完】
  10. c++区块链实例_确定技术任务了解区块链限制 开发区块链你该做哪些准备工作?...