mysql5.6快速安装及参数详解
一、所需软件
| 软件名称 | 版本 | 下载地址 | 当前环境 | 管理员账号/密码 |
|---|---|---|---|---|
| mysql | 5.6 | yum安装 | centOS6.7系统 | zxfly/zxfly |
二、安装说明
| 数据库所在目录 | /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
如图:

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= #slow_queries
slow_query_log_file = /var/log/mysql/mysql_slow_query.log
long_query_time=
slow_query_log=
#binlog
server-id=
log_bin=/database/mysql-bin/mysql_bin
binlog_format=mixed
expire_logs_days= #innodb
innodb_buffer_pool_size=104G
innodb_log_file_size=512M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit=
innodb_file_per_table=
innodb_file_io_threads=
innodb_flush_method=O_DIRECT
innodb_io_capacity=
innodb_io_capacity_max=
innodb_lru_scan_depth=
innodb_thread_concurrency = #cache
##内部内存临时表的最大值
tmp_table_size=2G
character-set-server=utf8
collation-server=utf8_general_ci
##即跳过外部锁定
skip-external-locking
##MySQL能暂存的连接数量(根据实际设置)
back_log=
##指定索引缓冲区的大小,只对MyISAM表起作用,这里写上也没有关系
key_buffer_size=1024M
##这条指令限定用于每个数据库线程的栈大小
thread_stack=256k
##当一个查询不断地扫描某一个表,MySQL会为它分配一段内存缓冲区
read_buffer_size=8M
##线程缓存
thread_cache_size=
##查询缓存大小
query_cache_size=128M
##内部内存临时表的最大值,每个线程都要分配
max_heap_table_size=256M
##将查询结果放入查询缓存中
query_cache_type=
##代表在事务过程中容纳二进制日志SQL语句的缓存大小
binlog_cache_size = 2M
##同样是缓存表大小
table_open_cache=
##缓存线程
thread_cache= wait_timeout=
##表和表联接的缓冲区的大小
join_buffer_size = 1024M
##是一个connection级参数,在每个connection第一次需要使用这个buffer的时候,一次性分配设置的内存
sort_buffer_size=8M
##随机读取数据缓冲区使用内存
read_rnd_buffer_size = 8M #connect
##是一个MySQL中与安全有关的计数器值,它负责阻止过多尝试失败的客户端以防止暴力破解密码
max-connect-errors=
##连接数
max-connections=
##开启查询缓存
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 % of total RAM for dedicated server, else %.
# 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= #以ip为mysql的server-id
skip-name-resolve # Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links= #slow_queries
slow_query_log_file = /var/log/mysql/mysql_slow_query.log
long_query_time=
slow_query_log= #innodb
innodb_buffer_pool_size=16G
innodb_log_file_size=512M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit=
innodb_file_per_table=
innodb_file_io_threads=
innodb_flush_method=O_DIRECT
innodb_io_capacity=
innodb_io_capacity_max=
innodb_lru_scan_depth=
innodb_thread_concurrency = #cache
##内部内存临时表的最大值
tmp_table_size=2G
character-set-server=utf8
collation-server=utf8_general_ci
##即跳过外部锁定
skip-external-locking
##MySQL能暂存的连接数量(根据实际设置)
back_log=
##指定索引缓冲区的大小,只对MyISAM表起作用,这里写上也没有关系
key_buffer_size=1024M
##这条指令限定用于每个数据库线程的栈大小
thread_stack=256k
##当一个查询不断地扫描某一个表,MySQL会为它分配一段内存缓冲区
read_buffer_size=8M
##线程缓存
thread_cache_size=
##查询缓存大小
query_cache_size=128M
##内部内存临时表的最大值,每个线程都要分配
max_heap_table_size=256M
##将查询结果放入查询缓存中
query_cache_type=
##代表在事务过程中容纳二进制日志SQL语句的缓存大小
binlog_cache_size = 2M
##同样是缓存表大小
table_open_cache=
##缓存线程
thread_cache= wait_timeout=
##表和表联接的缓冲区的大小
join_buffer_size = 1024M
##是一个connection级参数,在每个connection第一次需要使用这个buffer的时候,一次性分配设置的内存
sort_buffer_size=8M
##随机读取数据缓冲区使用内存
read_rnd_buffer_size = 8M #connect
##是一个MySQL中与安全有关的计数器值,它负责阻止过多尝试失败的客户端以防止暴力破解密码
max-connect-errors=
##连接数
max-connections=
##开启查询缓存
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: [输入:zxfly]
Re-enter new password: [输入:zxfly]
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 -pzxfly
四、主从复制
MySQL主从部署文档:http://www.cnblogs.com/feiren/p/7722185.html
五、配置文件说明
1、基本配置
[mysqld]
| # | 配置项 | 说明 |
|---|---|---|
| 1 | user=mysql | 启动用户 |
| 2 | datadir=/database/mysql | 数据库所在路径 |
| 3 | socket=/var/lib/mysql/mysql.sock | sock文件所在目录 |
| 4 | skip-name-resolve | 禁用DNS解析,访问太慢加入此优化 |
| 5 | symbolic-links=0 | 关闭符号连接 |
| 6 | slow_query_log_file = /var/log/mysql_slow_query.log | 慢查询日志所在路径 |
| 7 | long_query_time=1 | 记录1秒以上的慢查询 |
| 8 | slow_query_log=1 | 开启慢查询 |
| 9 | server-id=171 | 每一个mysql实例设置一个独立的server-id一般以IP定义 |
| 10 | log_bin=/database/mysql/mysql_bin | 二进制文件所在路径及格式 |
| 11 |
binlog_format=mixed |
定义二进制文件输出的格式(混合型) 可定义类型: 1、row 详细记录所有,会产生大量的日志。 2、statement(默认) 记录sql语句,及其位置。在复杂的语句时可能记录不正确。 3、mixed 以上两种的结合,会自动选择。 |
| 12 | sync-binlog=1 |
默认为0 1是最安全的。 1、当出现错误的时候,设置为1,最多会丢失一个事务。 2、他是最慢的选择。 3、但是确保恢复快的话,应该由双电源缓存机制存在。 |
| 13 | expire_logs_days=14 | 保留二进制文件的天数 |
[mysqld_safe]
| # | 配置项 | 说明 |
|---|---|---|
| 1 | log-error=/var/log/mysqld.log | 错误日志路径 |
| 2 |
pid-file=/var/run/mysqld/mysqld.pid |
pid文件所在路径 |
2、优化项配置
#innodb引擎优化
| # | 配置项 | 说明 |
|---|---|---|
| 1 | innodb_buffer_pool_size=104G |
缓存innodb表的索引,数据,插入数据时的缓冲, 1、官方建议设置为内存大小的80%,线上所挂载的大小为160G,可用130G,所以设置为104G 2、 |
| 2 | innodb_log_file_size=512M |
事务日志的大小 官方推荐为:日志大小*日志组大小(默认为2)不能超过512G 1、该值越大,写入磁盘IO越小, 2、该值越大,出现错误恢复越难 3、默认为48M,修改为512M,也就是在大并发的时候1G的日志刷入。 4、如果该值调大,并且为了减少崩溃恢复,应该将下main的innodb_flush_log_at_trx_commit改为1 |
| 3 | innodb_log_buffer_size = 8M | 事务在内存中的缓冲大小 |
| 4 | innodb_flush_log_at_trx_commit=2 | 每秒将事务日志刷到磁盘中 (0:每秒刷一次 1:提交事务就刷入磁盘 2:有事务执行,然后每秒刷一次) |
| 5 | innodb_file_per_table=1 | 开启共享表空间自动收缩 |
| 6 | innodb_file_io_threads=4 | 可用的IO线程数 |
| 7 | innodb_flush_method=O_DIRECT | 定义刷写模式(默认为:fdatasync) O_DIRECT会最小化缓冲对io的影响, |
| 8 | innodb_io_capacity=2000 | 定义读写IO的能力 和磁盘转速及大小有关 |
| 9 | innodb_io_capacity_max=6000 | 每秒最大IO能力 |
| 10 | innodb_lru_scan_depth=2000 | 一般与innodb_io_capacity的值相同 |
| 11 | innodb_thread_concurrency = 0 | 不限制并发线程数 |
#cache缓存优化
| # | 配置项 | 说明 |
|---|---|---|
| 1 | tmp_table_size=2G | 内部(内存中)临时表的最大大小 |
| 2 | character-set-server=utf8 | 更改默认字符集 |
| 3 | collation-server=utf8_general_ci | 指定字符串的比对规则 |
| 4 | skip-external-locking | 跳过外部锁定 |
| 5 | back_log=1024 | 监听队列中所能保持的连接数 |
| 6 | key_buffer_size=1024M | 关键词缓冲的大小 |
| 7 | thread_stack=256k | 线程使用的堆大小. 此容量的内存在每次连接时被预留 |
| 8 | read_buffer_size=8M | 全表扫描的缓冲大小 |
| 9 | thread_cache_size=64 | 在cache 中保留用于重用的线程个数 |
| 10 | query_cache_size=128M | 查询缓冲大小,保留select查询,下次同样查询可以直接返回结果 |
| 11 | max_heap_table_size=256M | 每个表所允许的内存的最大容量(防止内存被大表直接占用完) |
| 13 | query_cache_type=1 | 开启查询缓存 |
| 14 | binlog_cache_size = 2M | binlog记录事务所保留的缓存大小 |
| 15 | table_open_cache=128 | 每个线程允许打开表的数量 |
| 16 | thread_cache=1024 | 保留的用于从重用的线程数 |
| 17 | thread_concurrency=24 | 向系统发送希望用到的线程的个数(一般为CPU的数量的二到四倍) |
| 18 | wait_timeout=18000 | sleep操作最大等待时间(即一个后台运行的命令最大时间) |
| 19 | join_buffer_size = 1024M | 优化全联合,当联合表操作时,使用此缓存 |
| 20 | sort_buffer_size=8M | 排序操作缓存 |
| 21 | read_rnd_buffer_size = 8M | 排序完成后会放入此缓存,可以减少磁盘IO |
| 22 | max-connect-errors=100000 | 负责阻止过多尝试失败的客户端以防止暴力破解密码 |
| 23 | max-connections=3000 | 最大连接数 |
| 24 | explicit_defaults_for_timestamp=true | 开启查询缓存 |
| 25 | sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES | 定义其工作模式,mysql会自动选择定义的模式 |
六、检查
1、查看进程是否存在
ps -ef|grep mysql
2、查看是否可以登录
mysql -uzxfly -pzxfly
七、监控
1、zabbix-mysql监控
2、zabbix-mysql主从监控
八、启动、关闭和登录
1、启动
service mysqld start
2、关闭
service mysqld stop
3、重启
service mysqld restart
4、登录
mysql -uzxfly -pzxfly
九、压力测试
十、其他
mysql备份&还原
mysql5.6快速安装及参数详解的更多相关文章
- java架构之路-(分布式)初识zookeeper安装与参数详解
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...
- tcpdump安装与参数详解
Centos7安装Tcpdump 对于大部分的Linux操作系统,已经默认安装了tcpdump,可以通过以下命令查看: [root@localhost local]# tcpdump --versio ...
- 【转】MySQL5.5的my.cnf 参数详解
这篇文章很多地方只是翻译了my.cnf原始配置文件的说明 以下原文中有些参数事实上不适用于MySQL5.5,不知道原作者是否有经过实际测试,比如log-slow-queries应该写成slow-que ...
- Linux iftop 安装与参数详解
介绍 iftop是一款实时流量监控工具,监控TCP/IP连接等,缺点就是无报表功能.必须以root身份才能运行. .编译安装如果采用编译安装可以到iftop官网下载最新的源码包. 安装前需要已经安装好 ...
- Xtrabackup 安装 参数详解
目录 安装 常用参数详解 innobackupex 相关参数 xtrabackup相关参数 安装 继Xtrabackup 介绍,本次来讲解安装和使用. Xtrabackup的RPM包下载地址: 系统版 ...
- linux PHP 编译安装参数详解
linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...
- mysql5.6主从参数详解
mysql5.6的主从相当的不错,增加了不少参数,提升了主从同步的安全和效率,以下是mysql5.6主从参数详解. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- Linux中Nginx安装与配置详解
转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...
- mysql的my.cnf参数详解
转载[Mysql] MySQL配置文件my.cnf的理解 一.缘由 最近要接手数据库的维护工作,公司首选MySQL.对于MySQL的理解,我认为很多性能优化工作.主从主主复制都是在调整参数,来适应不同 ...
随机推荐
- 关于jmeter+ant+jenkins性能自动化将测试结果文件jtl转换成html文件遇到的问题。
1.ant自身缺陷,返回结果中有特殊字符,乱码字符,无法识别,jtl文件转换时报错. 2.jtl文件过大转换成html文件时出现内存溢出. 针对以上情况:可考虑使用BeenShell Sampler: ...
- 【创业】2B创业历程
http://www.woshipm.com/chuangye/2800111.html http://www.woshipm.com/chuangye/2803240.html http://www ...
- 取数据超过内存限制的问题-解决方案(sample,takeSample,filter)
遇到的问题 在处理数据过程中,遇到需要取(n)个数的问题,而当样本量过大的时候,就不能简单的take(n),这类问题一般有两种情况: > - 有序取 TopN > - 无序取 N 先来讨论 ...
- Swift学习 (三)
3.函数: 在Swift中函数的定义基本与OC一样. 主要区别为: 通过func关键词定义函数 返回值在->关键词后标注 各举一个类方法与实例方法例子. 1 2 + (UIColor*)blac ...
- iOS面试-assign与retain
assign 对基础数据类型 (NSInteger,CGFloat)和C数据类型(int, float, double, char)等等. 此标记说明设置器直接进行赋值,这也是默认值.在 ...
- (CVE-2016-5195)脏牛本地提权
简要分析 该漏洞具体为,get_user_page内核函数在处理Copy-on-Write(以下使用COW表示)的过程中,可能产出竞态条件造成COW过程被破坏, 导致出现写数据到进程地址空间内只读内存 ...
- JavaScript中的Truthy和Falsy
JavaScript中存在Truthy值和Falsy值的概念 — 除了boolean值true.false外,所有类型的JavaScript值均可用于逻辑判断,其规则如下: 1.所有的Falsy值,当 ...
- Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
mysql使用可视化界面登录使用的时候都没问题,只要使用xhell命令进入mysql就报异常 Can't connect to local MySQL server through socket '/ ...
- [学习笔记] 在Eclipse中添加用户库 Add User Libraries ,在项目中引用用户库
如果还没有安装Eclipse, 则请参考前文: [学习笔记] 下载.安装.启动 Eclipse(OEPE) 添加用户库 本文主要介绍在项目中直接使用第三方库的情况.就是把第三方的jar文件直接放到某 ...
- upw,c#,启用后台播放控件
uwp音视频app,启用后台播放控件. 启用控件 SystemMediaTransportControls systemMedia_TransportControls = SystemMediaTra ...