阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.7下MySQL 5.6快速安装及参数详解

372次阅读
没有评论

共计 8642 个字符,预计需要花费 22 分钟才能阅读完成。

一、所需软件

软件名称版本下载地址当前环境管理员账号 / 密码
mysql5.6yum 安装CentOS6.7 系统linuxidc/linuxidc

二、安装说明

数据库所在目录/database/mysql新建目录 mysql
sock 文件路径/var/lib/mysql/mysql.sock自动生成
配置文件路径/etc/my.cnf 
慢查询日志路径/var/log/mysql/mysql_slow_query.log新建 mysql 日志目录
错误日志路径/var/log/mysql/mysqld.log 
pid 文件/var/run/mysqld/mysqld.pid自动生成
binlog 日志文件/database/mysql-bin/mysql_bin*.log新建目录 mysql-bin

三、安装

1、下载 yum 源。

官网地址:http://dev.mysql.com/downloads/repo/yum/ 

centos7 系统:

wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

centos6 系统:

wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm

2、安装 rpm

rpm -Uvh mysql57-community-release-el6-7.noarch.rpm

3、修改 yum 源配置

 vim /etc/yum.repos.d/mysql-community.repo

安装 mysql5.6 操作

1、将 enabled= 1 更改为 enabled=0

2、将 enabled= 0 更改为 enabled=1

如图:

CentOS 6.7 下 MySQL 5.6 快速安装及参数详解

 

4、安装 mysql

yum install mysql-community-server

5、替换配置文件

主库配置文件:

[mysqld]
user=mysql
datadir=/database/mysql
socket=/var/lib/mysql/mysql.sock

skip-name-resolve

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

#slow_queries
slow_query_log_file = /var/log/mysql/mysql_slow_query.log
long_query_time=1
slow_query_log=1
#binlog
server-id=77
log_bin=/database/mysql-bin/mysql_bin
binlog_format=mixed
expire_logs_days=7

#innodb
innodb_buffer_pool_size=104G
innodb_log_file_size=512M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit=2
innodb_file_per_table=1
innodb_file_io_threads=4
innodb_flush_method=O_DIRECT
innodb_io_capacity=2000
innodb_io_capacity_max=6000
innodb_lru_scan_depth=2000
innodb_thread_concurrency = 0

#cache
## 内部内存临时表的最大值
tmp_table_size=2G
character-set-server=utf8
collation-server=utf8_general_ci
## 即跳过外部锁定
skip-external-locking
##MySQL 能暂存的连接数量(根据实际设置)
back_log=1024
## 指定索引缓冲区的大小, 只对 MyISAM 表起作用, 这里写上也没有关系
key_buffer_size=1024M
## 这条指令限定用于每个数据库线程的栈大小
thread_stack=256k
## 当一个查询不断地扫描某一个表,MySQL 会为它分配一段内存缓冲区
read_buffer_size=8M
## 线程缓存
thread_cache_size=64
## 查询缓存大小
query_cache_size=128M
## 内部内存临时表的最大值, 每个线程都要分配
max_heap_table_size=256M
## 将查询结果放入查询缓存中
query_cache_type=1
## 代表在事务过程中容纳二进制日志 SQL 语句的缓存大小
binlog_cache_size = 2M
## 同样是缓存表大小
table_open_cache=128
## 缓存线程
thread_cache=1024

wait_timeout=18000
## 表和表联接的缓冲区的大小
join_buffer_size = 1024M
## 是一个 connection 级参数, 在每个 connection 第一次需要使用这个 buffer 的时候, 一次性分配设置的内存
sort_buffer_size=8M
## 随机读取数据缓冲区使用内存
read_rnd_buffer_size = 8M

#connect
## 是一个 MySQL 中与安全有关的计数器值, 它负责阻止过多尝试失败的客户端以防止暴力破解密码
max-connect-errors=100000
## 连接数
max-connections=3000
## 开启查询缓存
explicit_defaults_for_timestamp=true
##mysql 服务器能够工作在不同的模式下, 并能针对不同的客户端以不同的方式应用这些模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqldump]
quick

[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

mysql 主库配置文件

从库配置文件:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove lead/ing # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
user=mysql
datadir=/database/mysql
socket=/var/lib/mysql/mysql.sock
server-id=214 #以 ip 为 mysql 的 server-id
skip-name-resolve

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

#slow_queries
slow_query_log_file = /var/log/mysql/mysql_slow_query.log
long_query_time=1
slow_query_log=1

#innodb
innodb_buffer_pool_size=16G
innodb_log_file_size=512M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit=2
innodb_file_per_table=1
innodb_file_io_threads=4
innodb_flush_method=O_DIRECT
innodb_io_capacity=2000
innodb_io_capacity_max=6000
innodb_lru_scan_depth=2000
innodb_thread_concurrency = 0

#cache
## 内部内存临时表的最大值
tmp_table_size=2G
character-set-server=utf8
collation-server=utf8_general_ci
## 即跳过外部锁定
skip-external-locking
##MySQL 能暂存的连接数量(根据实际设置)
back_log=1024
## 指定索引缓冲区的大小, 只对 MyISAM 表起作用, 这里写上也没有关系
key_buffer_size=1024M
## 这条指令限定用于每个数据库线程的栈大小
thread_stack=256k
## 当一个查询不断地扫描某一个表,MySQL 会为它分配一段内存缓冲区
read_buffer_size=8M
## 线程缓存
thread_cache_size=64
## 查询缓存大小
query_cache_size=128M
## 内部内存临时表的最大值, 每个线程都要分配
max_heap_table_size=256M
## 将查询结果放入查询缓存中
query_cache_type=1
## 代表在事务过程中容纳二进制日志 SQL 语句的缓存大小
binlog_cache_size = 2M
## 同样是缓存表大小
table_open_cache=128
## 缓存线程
thread_cache=1024

wait_timeout=18000
## 表和表联接的缓冲区的大小
join_buffer_size = 1024M
## 是一个 connection 级参数, 在每个 connection 第一次需要使用这个 buffer 的时候, 一次性分配设置的内存
sort_buffer_size=8M
## 随机读取数据缓冲区使用内存
read_rnd_buffer_size = 8M

#connect
## 是一个 MySQL 中与安全有关的计数器值, 它负责阻止过多尝试失败的客户端以防止暴力破解密码
max-connect-errors=100000
## 连接数
max-connections=3000
## 开启查询缓存
explicit_defaults_for_timestamp=true
##mysql 服务器能够工作在不同的模式下, 并能针对不同的客户端以不同的方式应用这些模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqldump]
quick

[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

mysql 从库配置文件

复制配置文件到 /etc/my.cnf

主库:cp my.cnf /etc/my.cnf

从库:cp my_web_slave.cnf /etc/my.cnf

6、编辑配置文件:

vim /etc/my.cnf

# 修改 server-id=171 替换成

server-id=[配置为安装数据库所在服务器的 ip]

说明:如果部署的 mysql 服务是作为从库来使用的话,还需要将 bin_log 项给注释掉。

7、创建目录

创建日志所在目录

mkdir -p /var/log/mysql

chown -R mysql.mysql /var/log/mysql

创建数据所在目录

mkdir -p /database/mysql

chown -R mysql.mysql /database/mysql

创建 binlog 所在目录(如果作为从库的话,可以跳过)

mkdir -p /database/mysql-bin

chown -R mysql.mysql /database/mysql-bin

8、初始化、启动

初始化数据库

mysql_install_db –user=mysql –datadir=/database/mysql

启动

service mysqld start #(第一次时间会相对长点,需要初始化,请耐心等待)

9、初始化配置

命令 mysql_secure_installation

Enter current password for root (enter for none):[回车跳过]

et root password? [Y/n] y  [是否设置 root 密码]
New password:                  [输入:linuxidc]
Re-enter new password:    [输入:linuxidc]
Remove anonymous users? [Y/n] y [删除匿名用户]
Disallow root login remotely? [Y/n] y [禁止 root 远程登录]
Remove test database and access to it? [Y/n] y [删除 test 数据库]
Reload privilege tables now? [Y/n] y [刷新权限]

10、创建一个管理员账号

# 登录 mysql

mysql -uroot -plinuxidc

# 创建账号
grant all on *.*  to   ‘linuxidc’@’192.168.0.% ‘ identified by ‘linuxidc’;          [授权管理所用库]
FLUSH PRIVILEGES;                                          [刷新权限,写入磁盘]

四、主从复制

MySQL 主从部署文档:http://www.linuxidc.com/Linux/2017-11/148267.htm

五、配置文件说明

1、基本配置

[mysqld]

#配置项说明
1user=mysql启动用户
2datadir=/database/mysql数据库所在路径
3socket=/var/lib/mysql/mysql.socksock 文件所在目录
4skip-name-resolve禁用 DNS 解析,访问太慢加入此优化
5symbolic-links=0关闭符号连接
6slow_query_log_file = /var/log/mysql_slow_query.log慢查询日志所在路径
7long_query_time=1记录 1 秒以上的慢查询
8slow_query_log=1开启慢查询
9server-id=171每一个 mysql 实例设置一个独立的 server-id 一般以 IP 定义
10log_bin=/database/mysql/mysql_bin二进制文件所在路径及格式
11

binlog_format=mixed

定义二进制文件输出的格式(混合型)

可定义类型:

1、row

详细记录所有,会产生大量的日志。

2、statement(默认)

记录 sql 语句,及其位置。在复杂的语句时可能记录不正确。

3、mixed

以上两种的结合,会自动选择。

12sync-binlog=1

默认为 0 1 是最安全的。

1、当出现错误的时候,设置为 1,最多会丢失一个事务。

2、他是最慢的选择。

3、但是确保恢复快的话,应该由双电源缓存机制存在。

13expire_logs_days=14保留二进制文件的天数

[mysqld_safe]

#配置项说明
1log-error=/var/log/mysqld.log错误日志路径
2

pid-file=/var/run/mysqld/mysqld.pid

pid 文件所在路径

2、优化项配置

#innodb 引擎优化

#配置项说明
1innodb_buffer_pool_size=104G

缓存 innodb 表的索引,数据,插入数据时的缓冲,

1、官方建议设置为内存大小的 80%,线上所挂载的大小为 160G,可用 130G,所以设置为 104G

2、

2innodb_log_file_size=512M

事务日志的大小

官方推荐为:日志大小 * 日志组大小(默认为 2)不能超过 512G

1、该值越大,写入磁盘 IO 越小,

2、该值越大,出现错误恢复越难

3、默认为 48M, 修改为 512M,也就是在大并发的时候 1G 的日志刷入。

4、如果该值调大,并且为了减少崩溃恢复,应该将下 main 的 innodb_flush_log_at_trx_commit 改为 1

3innodb_log_buffer_size = 8M事务在内存中的缓冲大小
4innodb_flush_log_at_trx_commit=2每秒将事务日志刷到磁盘中(0:每秒刷一次 1:提交事务就刷入磁盘 2:有事务执行,然后每秒刷一次)
5innodb_file_per_table=1开启共享表空间自动收缩
6innodb_file_io_threads=4可用的 IO 线程数
7innodb_flush_method=O_DIRECT定义刷写模式(默认为:fdatasync)O_DIRECT 会最小化缓冲对 io 的影响,
8innodb_io_capacity=2000定义读写 IO 的能力 和磁盘转速及大小有关
9innodb_io_capacity_max=6000每秒最大 IO 能力
10innodb_lru_scan_depth=2000一般与 innodb_io_capacity 的值相同
11innodb_thread_concurrency = 0不限制并发线程数

#cache 缓存优化

#配置项说明
1tmp_table_size=2G内部 (内存中) 临时表的最大大小
2character-set-server=utf8更改默认字符集
3collation-server=utf8_general_ci指定字符串的比对规则
4skip-external-locking跳过外部锁定
5back_log=1024监听队列中所能保持的连接数
6key_buffer_size=1024M关键词缓冲的大小
7thread_stack=256k线程使用的堆大小. 此容量的内存在每次连接时被预留
8read_buffer_size=8M全表扫描的缓冲大小
9thread_cache_size=64在 cache 中保留用于重用的线程个数
10query_cache_size=128M查询缓冲大小,保留 select 查询,下次同样查询可以直接返回结果
11max_heap_table_size=256M每个表所允许的内存的最大容量(防止内存被大表直接占用完)
13query_cache_type=1开启查询缓存
14binlog_cache_size = 2Mbinlog 记录事务所保留的缓存大小
15table_open_cache=128每个线程允许打开表的数量
16thread_cache=1024保留的用于从重用的线程数
17thread_concurrency=24向系统发送希望用到的线程的个数(一般为 CPU 的数量的二到四倍)
18wait_timeout=18000sleep 操作最大等待时间(即一个后台运行的命令最大时间)
19join_buffer_size = 1024M优化全联合,当联合表操作时,使用此缓存
20sort_buffer_size=8M排序操作缓存
21read_rnd_buffer_size = 8M排序完成后会放入此缓存,可以减少磁盘 IO
22max-connect-errors=100000负责阻止过多尝试失败的客户端以防止暴力破解密码
23max-connections=3000最大连接数
24explicit_defaults_for_timestamp=true开启查询缓存
25sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES定义其工作模式,mysql 会自动选择定义的模式

六、检查

1、查看进程是否存在

ps -ef|grep mysql

2、查看是否可以登录

mysql -ulinuxidc -plinuxidc

七、监控

1、zabbix-mysql 监控

2、zabbix-mysql 主从监控

八、启动、关闭和登录

1、启动

service mysqld start

2、关闭

service mysqld stop

3、重启

service mysqld restart

4、登录

mysql -ulinuxidc -plinuxidc

九、压力测试

十、其他

mysql 备份 & 还原

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148266.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计8642字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7959695
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...