mysql常用配置说明

文章目录 (?) [+]

    查看配置

    # 要查看默认值和自定义配置的值
    mysqld --verbose --help
    
    # 查看 mysql 正在使用的参数值
    mysqladmin variables
    
    # 只查看默认值
    mysqld --no-defaults --verbose --help


    常用配置说明

    参考:https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html


    客户端配置

    [client]
    # 客户端的默认连接端口
    port=3306
    # 本地通信使用的套接字
    socket=/run/mysqld/mysqld.sock
    # 客户端默认编码
    default-character-set=utf8mb4


    服务端配置

    [mysqld]
    # 监听端口
    port=3306
    # 本地通信使用的套接字
    socket=/run/mysqld/mysqld.sock
    # pid 文件
    pid-file=/run/mysqld/mysqld.pid
    # 记录启动、关闭、警告、错误等日志
    log_error=/var/log/mysql/error.log
    # 启动用户
    user=mysql
    # 数据库程序安装目录
    basedir=/usr
    # 数据库文件存放目录
    datadir=/data
    # 临时目录
    tmpdir=/tmp
    # 跳过 MyISAM 数据表外部锁定
    # MyISAM 数据表在多进程共用同一个数据库目录时访问需要锁定
    skip-external-locking
    # 禁用域名解析
    skip-name-resolve
    # 禁用端口访问
    #skip-networking
    # 绑定 ip 地址
    bind-address=0.0.0.0
    # MyISAM 存储引擎的线程共享索引缓冲区大小
    key_buffer_size=64M
    # 并发连接时缓存打开表的最大总数
    # 每当 MySQL 访问一个表时,如果表缓冲区中还有空间,该表就被打开并放入其中,以此加速访问表
    # 通过 SHOW GLOBAL STATUS LIKE 'Open%tables' 检查峰值时间的状态值 Open_tables 和 Opened_tables 来判断是否需要增加 table_open_cache 的值
    # 推荐设置值
    # Open_tables / Opened_tables >= 0.85
    # Open_tables / table_open_cache <= 0.95
    table_open_cache=512
    # 设置 order by 和 group by 排序操作缓冲区大小
    sort_buffer_size=1M
    # 服务端最大允许接收的数据包大小
    max_allowed_packet=1M
    # 数据包缓冲区初始化大小,会根据需要最大增长至 max_allowed_packet
    net_buffer_length=8K
    # 对 MyISAM 数据表进行顺序扫描时每个线程的缓冲区大小
    read_buffer_size=1M
    # 对任何数据表随机扫描时每个线程的缓冲区大小
    read_rnd_buffer_size=512K
    # 在 REPAIR TABLE 期间对 MyISAM 索引进行排序或使用 CREATE INDEX 或 ALTER TABLE 创建索引时分配的缓冲区大小
    myisam_sort_buffer_size=16M
    # 线程池大小
    thread_cache_size=16
    # 对于读多写少的环境设置 1 启用查询缓存会对性能有所提升
    # 0 默认值,禁用查询缓存
    # 1 缓存所有以 SELECT 开头的可缓存查询结果,SELECT SQL_NO_CACHE 除外
    # 2 仅缓存以 SELECT SQL_CACHE 开头的可缓存查询结果
    query_cache_type=1
    # 启用查询缓存时,会缓存 SELECT 语句和对应的结果集,设置查询缓存的大小
    query_cache_size=16M
    # 内部内存临时表的最大大小,超出限制时会自动将其转换为磁盘上的临时表
    tmp_table_size=32M
    # 默认为 false 情况下
    # 如果 TIMESTAMP 列未指定 NULL 属性,该列会自动添加 NOT NULL 属性,如果向列中插入 NULL 会自动设置为 CURRENT_TIMESTAMP 值
    # 如果表中第一个 TIMESTAMP 列未指定 NULL 属性或默认值,也没有指定 ON UPDATE 语句,该列会自动添加 DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 属性
    # 非第一个 TIMESTAMP 列,如果没有指定未指定 NULL 属性和默认值,该列会自动添加 DEFAULT '0000-00-00 00:00:00'属性
    explicit_defaults_for_timestamp=true
    # 最大并发连接数
    max_connections=500
    # 允许客户端错误连接最大次数,超过将被拉黑
    max_connect_errors=100
    # 最大打开文件数
    open_files_limit=65535
    # 服务器 ID,互相通信的服务器 ID 不允许重复
    server-id=1
    # 二进制日志,相对于 datadir 路径
    log-bin=/var/log/mysql/mysql-bin
    #relay_log=/var/log/mysql/mysql-relay-bin
    # 二进制日志格式
    binlog_format=mixed
    # 二进制日志保留天数
    expire_logs_days=14
    # 设置自增的增量
    auto_increment_increment=1
    # 设置自增起始值
    auto_increment_offset=1
    # 默认新数据表的存储引擎
    default_storage_engine=InnoDB
    # 每个数据库的每个表都会生成一个数据空间(.ibd 文件)
    innodb_file_per_table=1
    # 如果不指定,则所有 InnoDB TableSpace 文件只能存放在 datadir 中
    # 如果指定为空,则可为 InnoDB TableSpace 文件指定不同路径
    # 如果指定路径,则所有 InnoDB TableSpace 文件只能存放在指定路径中
    #innodb_data_home_dir=
    # 设置存储 InnoDB 数据表的表空间存放位置、最大长度等属性
    # 每个表空间文件规则用 ; 间隔
    # 最后一个表空间可以使用 autoextend 和 max:n 属性
    innodb_data_file_path=ibdata1:10M:autoextend
    # InnoDB 缓存池大小
    innodb_buffer_pool_size=128M
    # 指定 InnoDB 事务日志(如 ib_logfile0、ib_logfile1)存放路径
    innodb_log_group_home_dir=/var/log/mysql
    # 每个 InnoDB 事务日志大小
    innodb_log_file_size=64M
    # InnoDB 事务日志缓冲区大小
    innodb_log_buffer_size=8M
    # InnoDB 事务日志同步磁盘时机
    # 0 每次 COMMIT 将事务日志写进了日志缓冲区,然后每隔一秒将缓冲区的事务日志同步到磁盘,性能最好,但 mysqld 进程崩溃会导致上一秒钟所有事务数据的丢失
    # 1 每次 COMMIT 将事务日志同步到磁盘,mysqld 崩溃不会丢失数据,但频繁的 IO 操作导致效率低下
    # 2 每次 COMMIT 将事务日志写进了日志缓冲区并同时写入系统缓冲区,然后每隔一秒将缓冲区的事务日志同步到磁盘, mysqld 崩溃时不会丢失日志,折衷的举措
    innodb_flush_log_at_trx_commit=1
    # 如果某个事务在等待 n 秒后仍未获得所需要的资源,就执行 ROLLBACK 回滚该事务
    innodb_lock_wait_timeout=50
    # 默认的编码
    character-set-server=utf8mb4
    # 默认的排序规则
    collation-server=utf8mb4_general_ci


    其他配置

    # mysqldump 工具的配置
    [mysqldump]
    quick
    max_allowed_packet=16M
    
    # mysql 工具的配置
    [mysql]
    # 自动补全表名、字段名
    auto-rehash
    prompt="\\u@\\h:\\d \\p>"
    default-character-set=utf8mb4
    
    # myisamchk 工具的配置
    [myisamchk]
    key_buffer_size=64M
    sort_buffer_size=1M
    read_buffer=2M
    write_buffer=2M
    
    # mysqlhotcopy 工具的配置
    [mysqlhotcopy]
    interactive-timeout


    本文标题:mysql常用配置说明
    本文链接:https://lanseyujie.com/post/mysql-common-configuration-instructions.html
    版权声明:本文使用「署名 4.0 国际」创作共享协议,转载或使用请遵守署名协议。
    点赞 0 分享 0