青成林语

协助他人,成就彼此 ^_^
mysql-host模式

 

 

 

启动命令

docker stop mysql
docker rm mysql

docker run \
  --name mysql \
  --network host \
  --privileged=true \
  --restart unless-stopped \
  -v /home/hydev/mysql/my.cnf:/etc/mysql/my.cnf \
  -v /home/hydev/mysql/logs:/logs \
  -v /home/hydev/mysql/data:/var/lib/mysql \
  -v /etc/localtime:/etc/localtime \
  -e MYSQL_ROOT_PASSWORD=root1234 \
  -d mysql:8.0.17

 

配置文件

[mysqld]
# 字符集
character-set-server  = utf8mb4
collation-server      = utf8mb4_unicode_ci

# InnoDB 缓冲池 – 10G 内存环境给 6G,核心优化
innodb_buffer_pool_size         = 6G
innodb_buffer_pool_instances    = 6

# 日志文件 – 增大以减少 checkpoint 压力
innodb_log_file_size    = 2G
innodb_log_buffer_size  = 64M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method     = O_DIRECT

# 连接与线程
max_connections         = 300
thread_cache_size       = 32
table_open_cache        = 4000
table_definition_cache  = 2000

# 临时表与排序
tmp_table_size          = 128M
max_heap_table_size     = 128M
sort_buffer_size        = 2M
join_buffer_size        = 2M

# IO 线程与能力
innodb_read_io_threads  = 8
innodb_write_io_threads = 8
innodb_io_capacity      = 2000
innodb_io_capacity_max  = 4000

# 慢查询日志(可选,便于排查)
slow_query_log          = 1
slow_query_log_file     = /logs/slow.log
long_query_time         = 2

 

 

nacos连接池

        # 最大连接数:根据数据库并发量和性能估算,经验公式:((CPU核心数 * 2) + 有效磁盘数)
        maximum-pool-size: 20
        # 最小空闲连接数:建议与maximum-pool-size设为相同,避免创建新连接的额外开销
        minimum-idle: 14
        # 2. 超时控制参数
        # 连接超时:客户端等待连接的最大毫秒数,设置过短容易导致获取连接失败,推荐30000ms (30秒)
        connection-timeout: 30000
        # 空闲超时:仅当minimum-idle < maximum-pool-size时生效,空闲连接被关闭前的最长空闲时间
        idle-timeout: 600000
        # 连接最大生命周期:任何连接存活的最长时间。应比数据库的wait_timeout或空闲超时设置略短
        max-lifetime: 3600000
        # 3. 连接校验与监控
        # 连接测试查询:极轻量的查询,用于验证连接是否存活,MySQL通常使用'SELECT 1'
        connection-test-query: SELECT 1
        # 连接泄露检测:若连接占用时间超过此阈值(毫秒)则打印警告日志,有助于发现未关闭连接的问题,生产环境建议开启
        leak-detection-threshold: 60000

 

posted on 2026-06-26 10:24  青成林语  阅读(8)  评论(0)    收藏  举报