mysql5.6配置

Wesley13
• 阅读 583

# mkdir -p /home/mysql/3306/{data,binlog,logs}

[client]
port = 3306
socket=/tmp/my3306.sock

[mysql]
no-auto-rehash

[mysqld]
user = mysql
port = 3306
bind_address = *
socket=/tmp/my3306.sock
character_set_server = utf8
log-error = /data/mysql/3306/logs/my3306_error.log
pid-file=/data/mysql/3306/logs/my3306.pid
datadir=/data/mysql/3306/data
basedir=/opt/mysql
default-storage-engine=InnoDB #MyISAM
open_files_limit = 10240
autocommit = 1
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
secure_file_priv=''
lower_case_table_names=1
skip-grant
skip-name-resolve =on

log-bin = /data/mysql/3306/binlog/binlog
binlog_cache_size = 32M
binlog_format = ROW #MIXED

binlog_row_image = FULL

max_binlog_cache_size = 2048M
max_binlog_size = 512M
expire_logs_days = 90


key_buffer_size = 1024M
max_allowed_packet = 1024M
table_open_cache = 1024
sort_buffer_size = 8M
read_buffer_size = 8M
read_rnd_buffer_size = 8M
join_buffer_size = 8M
myisam_sort_buffer_size = 128M
thread_cache_size = 128
query_cache_size= 128M
thread_concurrency = 8
interactive_timeout = 1800
wait_timeout = 1800

max_connections = 1000
max_user_connections = 1000
max_connect_errors = 6000
back_log = 600

long_query_time=3
slow_query_log=1
slow_query_log_file=/data/mysql/3306/logs/my3306-slow-query.log


skip_external_locking=1

innodb_file_per_table = on
innodb_buffer_pool_size = 2048M 
innodb_thread_concurrency = 8 
innodb_flush_log_at_trx_commit = 1

[client]
port = 3306
socket=/tmp/my3306.sock

[mysql]
#这个配置段设置启动MySQL服务的条件;在这种情况下,no-auto-rehash确保这个服务启动得比较快。
no-auto-rehash

[mysqld]
#########base############
user = mysql
port = 3306
bind_address = *
socket=/tmp/my3306.sock
character_set_server = utf8
log-error = /home/mysql/3306/logs/my3306_error.log
pid-file=/home/mysql/3306/logs/my3306.pid
datadir=/home/mysql/3306/data
basedir=/opt/mysql
default-storage-engine=InnoDB #MyISAM
#文件打开数
open_files_limit = 10240
#自动提交
autocommit = 1
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"

#表名不区分大小写
lower_case_table_names=1
#跳过密码验证
skip-grant
#关闭域名解析
skip-name-resolve =on

#secure_file_prive=null -- 限制mysqld 不允许导入导出

#secure_file_priv=/tmp/ -- 限制mysqld的导入导出只能发生在/tmp/目录下

secure_file_priv=' '         -- 不对mysqld 的导入 导出做限制

########binlog配置####################
log-bin = /home/mysql/3306/binlog/binlog
binlog_cache_size = 32M
binlog_format = ROW #MIXED

binlog_row_image = FULL

max_binlog_cache_size = 2048M
#binlog文件大小
max_binlog_size = 512M
#binlog保留90天
expire_logs_days = 90

####调优配置###############
#buffer内存的配置参数,索引缓冲区(1G以下内存设定128M;2G/256M; 4G/384M;8G/1024M;16G/2048M)
key_buffer_size = 1024M
#设置在网络传输中一次消息传输量的最大值。系统默认值 为4MB,最大值是1GB,必须设置1024的倍数
max_allowed_packet = 1024M
#打开一个表的时候,会临时把表里面的数据放到这部分内存中,一般设置成1024就够了
table_open_cache = 1024
# Sort_Buffer_Size 是一个connection级参数,在每个connection(session)第一次需要使用这个buffer的时候,一次性分配设置的内存。
#Sort_Buffer_Size 并不是越大越好,由于是connection级的参数,过大的设置+高并发可能会耗尽系统内存资源。例如:500个连接将会消耗 500*sort_buffer_size(8M)=4G内存
#Sort_Buffer_Size 超过2KB的时候,就会使用mmap() 而不是 malloc() 来进行内存分配,导致效率降低。 系统默认2M,使用默认值即可
sort_buffer_size = 8M
#读数据的时候的缓冲区
read_buffer_size = 8M
#随机读的缓冲区
read_rnd_buffer_size = 8M
join_buffer_size = 8M #以上4项 4g内存给4-8M
#myisam配置的缓冲区 一般4G内存给64M即可
myisam_sort_buffer_size = 128M
#缓存可重用的线程数和内存有关系,1G内存设置为8,2G内存设置为16,4G以上设置为64。
thread_cache_size = 128
#查询的缓存大小,存放查询结果 一般情况下4G内存设置64M足够了
query_cache_size= 128M
#设置thread_concurrency的值的正确与否, 对mysql的性能影响很大。最大并发线程数,cpu核数的2倍
thread_concurrency = 16
#连接时间
interactive_timeout = 1800
#断开时间跟连接时间一起开才生效 跟interactive_timeout 一起配置
wait_timeout = 1800

######与性能并无太大关系。为了避免一些错误我们一般都设置比较大########
#最大的连接数,根据业务请求量适当调整,设置500足够
max_connections = 1000
#是指同一个账号能够同时连接到mysql服务的最大连接数。设置为0表示不限制。通常我们设置为100足够
max_user_connections = 1000
#设置每个主机的连接请求异常中断的最大次数,当超过该次数,MYSQL服务器将禁止host的连接请求,直到mysql服务器重启或通过flush hosts命令清空此host的相关信息。默认100
max_connect_errors = 6000
#在MYSQL暂时停止响应新请求之前,短时间内的多少个请求可以被存在堆栈中。如果系统在短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的监听队列的大小。默认值80。
back_log = 600

#####慢查询##########
long_query_time=3
#开启慢查询
slow_query_log=1
slow_query_log_file=/home/mysql/3306/logs/my3306-slow-query.log

#记录没有索引的查询
log_queries_not_using_indexes = 1

#使用skip_external_locking MySQL选项以避免外部锁定。该选项默认开启
skip_external_locking=1

######innodb配置================
#独立表空间 1=on 0=off
innodb_file_per_table = on
innodb_buffer_pool_size = 2048M
# 这对Innodb表来说非常重要。Innodb相比MyISAM表对缓冲更为敏感。MyISAM可以在默认的 key_buffer_size 设置下运行的可以,然而Innodb在默认的 innodb_buffer_pool_size 设置下却跟蜗牛似的。由于Innodb把数据和索引都缓存起来,无需留给操作系统太多的内存,因此如果只需要用Innodb的话则可以设置它高达 70-80% 的可用内存。一些应用于 key_buffer 的规则有 — 如果你的数据量不大,并且不会暴增,那么无需把 innodb_buffer_pool_size 设置的太大了
#表空间文件 重要数据
innodb_data_file_path = ibdata1:1024M:autoextend 设置过大导致报错,默认12M观察
#服务器有几个CPU就设置为几,建议用默认设置,一般为8
innodb_thread_concurrency = 8
# 如果将此参数设置为1,将在每次提交事务后将日志写入磁盘。为提供性能,可以设置为0或2,但要承担在发生故障时丢失数据的风险。设置为0表示事务日志写入日志文件,而日志文件每秒刷新到磁盘一次。设置为2表示事务日志将在提交时写入日志,但日志文件每次刷新到磁盘一次。(使用默认值1)
innodb_flush_log_at_trx_commit = 1

#innodb_force_recovery=1  #修复数据库的时候用

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这