zoukankan      html  css  js  c++  java
  • MySQL Config

    编码

    Linux 上修改 /etc/my.cnf。windows 上 my.ini,一般会在安装目录的根目录。

    Linux 用 rpm 包安装的 MySQL 没有 /etc/my.cnf 文件,默认用 /usr/share/mysql/my-medium.cnf,复制 /usr/share/mysql 目录下的 .cnf 文件到 /etc 目录,并改名为 my.cnf 即可。

    [client]
    default-character-set=utf8
    
    [mysqld]
    character_set_server=utf8
    character_set_client=utf8
    collation-server=utf8_general_ci
    
    [mysql]
    default-character-set=utf8

    查看编码,修改编码(已创建的表或库)

    SHOW VARIABLES LIKE '%char%';
    
    -- 修改已创建数据库的字符集
    alter database mydb character set 'utf8';
    -- 修改已创建数据表的字符集
    alter table mytbl convert to character set 'utf8';
    
    -- 已经乱码数据,无论是修改 mysql 配置文件或是修改库、表字符集,都无法改变已经变成乱码的数据。
    -- 只能删除数据重新插入或更新数据才可以完全解决

    大小写不敏感

    Windows 系统默认大小写不敏感,但 Linux 系统是大小写敏感的

    -- 查看
    show variables like '%lower_case_table_names%'
    
    -- 0 大小写敏感
    -- 1 大小写不敏感。创建的表,数据库都是以小写形式存放在磁盘上,对于 sql 语句都是转换为小写对表和 DB 进行查找
    -- 2 创建的表和 DB 依据语句上格式存放,凡是查找都是转换为小写进行

    修改 my.cnf,然后重启服务器

    [mysqld]
    lower_case_table_names = 1

    注:如果要设置属性为大小写不敏感,要在重启数据库实例之前就需要将原来的数据库和表转换为小写,否则将找不到数据库名。

    时区

    SQL 方式

    -- 查看时间
    SELECT NOW();
    -- 查看时区
    SHOW VARIABLES LIKE '%time_zone%';
    
    -- 临时修改,重启 MySQL 服务后失效
    SET GLOBAL time_zone='+8:00';
    flush privileges;

    修改 my.cnf 方式,需重启 MySQL 服务

    [mysqld]
    default-time_zone = '+8:00

    开启查询日志 

    在 my.ini 配置文件的 [mysqld] 下增加:

    slow_query_log=TRUE
    slow_query_log_file=/tmp/slow_query_log.txt
    long_query_time=3

    重启 mysql 服务,查询是否生效

    show variables like '%quer%';

    主从

    # 保证主从一致性,建议两个都设置为 1
    sync_binlog
    innodb_fush_log_at_trx_commit

    缓存

    # 建议 4M 或 8M,可以应付 sort/join/read
    sort/join/read/read rnd buffer
    
    # 建议 16M 或 32M,经常产生临时表可以加大一点 128M
    tmp/heap table
    
    # 1G-2G
    innodb_buffer_pool_size

    其它配置

    # 0.01(10毫秒)-0.1(100毫秒) 范围,记录超过时间的 SQL。设置 0,记录所有的 SQL
    long_query_time
    
    # 记录没有使用索引的 SQL,on/60,每分钟记录多少条
    log_queries_not_using_indexes
    log_throttle_queries_not_using_indexes
    
    # 交互模式的超时时间,建议 300-600 秒
    interactive_timeout
    wait_timeout
    
    # 表锁的超时时间,默认一年,建议 30-60 分钟
    lock_wait_timeout
    
    # 设定时区
    time_zone
    
    # 是否开启线程池
    thread_handling
    
    # 默认 75%,建议 50% innodb_max_dirty_pages_pct # 默认 0,不用改动 innodb_thread_concurrency # 行锁等待时间,默认 50 秒,建议设置 5-20 秒 innodb_lock_wait_timeout # 默认 0,不用改动 innodb_max_purge_lag # 建议 2G/3 组 innodb_log_file_size innodb_log_files_in_group # innodb 最大 io innodb_io_capacity innodb_io_capacity_max

    https://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

    https://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

    中文 5.1:https://dev.mysql.com/doc/index-archive.html

    中文 5.1 在线:https://jhxxb.gitee.io/blog/refman-5.1-zh.html-chapter/index.html

    https://imysql.com/

  • 相关阅读:
    2020916 spring总结
    20200915--事务
    20200915-mybatis基础
    20200911--使用注解开发
    20200910--Spring配置
    20200909--spring基础-IOC
    20200909-待补充
    20200909记我所看到的问题
    20200909-spring基础一
    面向对象
  • 原文地址:https://www.cnblogs.com/jhxxb/p/13291593.html
Copyright © 2011-2022 走看看