• mysql5.6配置-my


    # 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  #修复数据库的时候用

  • 相关阅读:
    vsftpd下错误之:500 OOPS
    material mem
    如何查看core文件
    java 开发工具使用
    Java计算几何图形的面积
    Java实现经理与员工的差异
    Java适配器模式的简单应用
    Java实现策略模式的简单应用
    Java单例模式的应用
    Java求解汉诺塔问题
  • 原文地址:https://www.cnblogs.com/hanxiaohui/p/8399161.html
Copyright © 2020-2023  润新知