关于my.cnf文件的参数配置解析

[mysql.server]有那些配置:

[mysql.server] 部分用于配置 MySQL 服务端的启动脚本 mysql.server 的行为,主要是用于控制 MySQL 服务在启动和停止时的配置选项。在实际使用中,它不是一个非常常见的配置部分,但有一些配置参数可以放置在这里,影响 mysql.server 启动脚本的行为。

以下是 [mysql.server] 部分的一些常见配置选项:

1. basedir

  • 描述:指定 MySQL 安装的基础目录,也就是 MySQL 程序文件所在的目录。

  • 示例:

    [mysql.server]
    basedir=/usr/local/mysql
    

2. datadir

  • 描述:指定 MySQL 数据文件的存储路径。这个目录存放所有的数据库文件和日志文件。

  • 示例:

    [mysql.server]
    datadir=/usr/local/mysql/data
    

3. pid-file

  • 描述:指定 MySQL 运行时生成的 PID 文件的位置,PID 文件用于记录 MySQL 进程的进程 ID。

  • 示例:

    [mysql.server]
    pid-file=/usr/local/mysql/data/mysqld.pid
    

4. port

  • 描述:指定 MySQL 服务器监听的端口号。默认端口是 3306,可以根据需要更改。

  • 示例:

    [mysql.server]
    port=3306
    

5. socket

  • 描述:指定 MySQL 的 Unix 套接字文件路径,这个配置一般用于本地连接时,客户端通过套接字文件而不是网络端口连接到 MySQL 服务器。

  • 示例:

    [mysql.server]
    socket=/tmp/mysql.sock
    

6. log-error

  • 描述:指定错误日志文件的路径,用于记录 MySQL 启动和运行中的错误信息。

  • 示例:

    [mysql.server]
    log-error=/usr/local/mysql/data/mysqld.err
    

7. user

  • 描述:指定运行 MySQL 守护进程的用户。为了安全,通常会将 MySQL 设置为一个专门的用户(如 mysql 用户)来运行,而不是使用 root 用户。

  • 示例:

    [mysql.server]
    user=mysql
    

8. tmpdir

  • 描述:指定 MySQL 的临时文件存储目录。MySQL 在运行时会创建一些临时文件,这个参数用来指定这些临时文件的存储位置。

  • 示例:

    [mysql.server]
    tmpdir=/tmp
    

9. lc-messages-dir

  • 描述:指定 MySQL 错误消息的本地化文件目录。

  • 示例:

    [mysql.server]
    lc-messages-dir=/usr/local/mysql/share
    

10. default-time-zone

  • 描述:设置 MySQL 服务器的默认时区。

  • 示例:

    [mysql.server]
    default-time-zone='+00:00'
    

其他可能的选项:

虽然 [mysql.server] 部分不是 MySQL 配置文件中最常用的部分,但如果你需要在启动脚本运行时控制 MySQL 服务器的行为,可以在这个部分添加与 mysqld 相关的配置选项。大多数配置选项与 [mysqld] 部分的参数是相同的。

在 macOS 或其他使用 mysql.server 脚本启动 MySQL 的环境下,可以在 /etc/my.cnf 文件中配置这些参数,确保 MySQL 按照你的需求启动和运行。

[server]有那些配置:

[server] 部分在 MySQL 配置文件中主要是用于定义服务器的通用配置选项。与 [mysqld] 类似,它影响 MySQL 服务器的行为。虽然这个部分使用得不如 [mysqld] 常见,但它也允许配置一些 MySQL 服务端的关键参数。

在 MySQL 的标准配置中,[server] 组实际上并不是官方文档中定义的标准配置区块。MySQL 通常使用以下主要配置区块:

  • [mysqld]:用于定义 MySQL 服务器的参数。
  • [client]:用于定义 MySQL 客户端的参数。
  • [mysql]:用于 MySQL 命令行工具的参数。

不过,在某些 MySQL 发行版或一些特定场景中,[server] 组可能被自定义用作特定配置,但这些配置实际上应该归属于 mysqld 组。严格来说,MySQL 官方不推荐使用 [server] 作为配置区块。

[server] 部分的一些常见配置选项:

1. basedir
  • 描述:指定 MySQL 安装的基础目录,也就是 MySQL 程序文件所在的位置。

  • 示例:

    [server]
    basedir=/usr/local/mysql
    
2. datadir
  • 描述:指定 MySQL 数据文件的存储目录。所有的数据库和日志文件都会存储在这个目录下。

  • 示例:

    [server]
    datadir=/var/lib/mysql
    
3. port
  • 描述:指定 MySQL 服务器监听的端口号,默认是 3306。

  • 示例:

    [server]
    port=3306
    
4. socket
  • 描述:指定 Unix 套接字文件的路径,本地连接 MySQL 服务器时会用到它。

  • 示例:

    [server]
    socket=/var/run/mysqld/mysqld.sock
    
5. pid-file
  • 描述:指定 MySQL 服务器运行时生成的 PID 文件路径。PID 文件用于记录 MySQL 进程的进程 ID。

  • 示例:

    [server]
    pid-file=/var/run/mysqld/mysqld.pid
    
6. tmpdir
  • 描述:指定 MySQL 临时文件的存储目录。MySQL 在执行某些操作时会生成临时文件。

  • 示例:

    [server]
    tmpdir=/tmp
    
7. lc-messages-dir
  • 描述:指定 MySQL 错误和信息消息的本地化语言文件所在的目录。

  • 示例:

    [server]
    lc-messages-dir=/usr/share/mysql
    
8. log-error
  • 描述:定义 MySQL 错误日志文件的存储路径。

  • 示例:

    [server]
    log-error=/var/log/mysql/error.log
    
9. default-time-zone
  • 描述:指定 MySQL 服务器的默认时区。

  • 示例:

    [server]
    default-time-zone='+00:00'
    
10. max_connections
  • 描述:定义允许的最大并发连接数。默认值通常是 151,可以根据实际需求调整。

  • 示例:

    [server]
    max_connections=200
    
11. sql_mode
  • 描述:指定 MySQL 的 SQL 模式,控制 SQL 语法的行为(例如是否启用严格模式等)。常用值包括 STRICT_TRANS_TABLESNO_ENGINE_SUBSTITUTION 等。

  • 示例:

    [server]
    sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
    
12. character-set-server
  • 描述:指定 MySQL 服务器的默认字符集。

  • 示例:

    [server]
    character-set-server=utf8mb4
    
13. collation-server
  • 描述:指定 MySQL 服务器默认的字符集排序规则。

  • 示例:

    [server]
    collation-server=utf8mb4_unicode_ci
    
14. innodb_buffer_pool_size
  • 描述:定义 InnoDB 存储引擎的缓冲池大小,它对数据库性能至关重要,通常占用可用内存的很大一部分。

  • 示例:

    [server]
    innodb_buffer_pool_size=2G
    

其他配置项

[server] 部分的一些配置选项与 [mysqld] 部分是相通的,很多配置都可以在这两个部分中定义。[server] 主要用于 MySQL 服务端的全局设置,它适用于 MySQL 服务器的基本配置,尤其是在希望为多个服务定义共同的参数时。

一般情况下,大部分服务端相关的配置项更常见于 [mysqld] 部分,如果是希望影响具体的服务行为,可以直接在 [mysqld] 部分进行配置。不过,如果需要全局共享某些选项,[server] 也可以用作一个集中式的配置部分。

整理一下[mysqld]的参数


[mysqld] 参数汇总

以下是 MySQL 配置文件中 [mysqld] 部分的一些常见配置参数,适用于调整 MySQL 服务器的性能、日志记录、存储引擎、网络设置等。这些参数根据你的需求和服务器环境可进行优化和调整。

[mysqld]
# 基础设置
basedir=/usr/local/mysql                  # MySQL 安装目录
datadir=/var/lib/mysql                    # MySQL 数据目录
port=3306                                 # MySQL 监听端口
socket=/var/lib/mysql/mysql.sock          # Unix socket 文件路径
pid-file=/var/run/mysqld/mysqld.pid       # 进程 ID 文件路径

# 性能优化
max_connections=200                       # 最大连接数
thread_cache_size=16                      # 线程缓存大小
innodb_buffer_pool_size=2G                # InnoDB 缓冲池大小(常设为内存的 70%-80%)
innodb_log_file_size=512M                 # InnoDB 日志文件大小
innodb_flush_log_at_trx_commit=1          # 控制事务提交的持久性
table_open_cache=2000                     # 表缓存大小
query_cache_size=0                        # 查询缓存大小(MySQL 8.0 已废弃)
query_cache_type=0                        # 关闭查询缓存(MySQL 8.0 已废弃)

# 日志记录
log-error=/var/log/mysql/error.log        # 错误日志文件路径
slow_query_log=1                          # 启用慢查询日志
slow_query_log_file=/var/log/mysql/slow.log  # 慢查询日志文件路径
long_query_time=2                         # 定义慢查询的阈值(秒)
log-bin=/var/log/mysql/mysql-bin.log      # 启用二进制日志并指定日志路径
expire_logs_days=7                        # 二进制日志的保留天数
max_binlog_size=500M                      # 单个二进制日志文件的最大大小
sync_binlog=1                             # 控制 binlog 同步的频率,1 为每个事务同步

# 安全性设置
skip-symbolic-links=1                     # 禁用符号链接
bind-address=127.0.0.1                    # 仅监听本地连接
secure-file-priv=/var/lib/mysql-files     # 限制文件导入导出操作的路径

# 复制和日志设置
server-id=1                               # 唯一的服务器 ID,用于主从复制
relay-log=/var/log/mysql/mysql-relay-bin.log # 中继日志文件
log_slave_updates=1                       # 从库记录主库的更新
binlog_format=ROW                         # 二进制日志格式为基于行的记录

# 存储引擎和字符集
default-storage-engine=InnoDB             # 默认存储引擎
character-set-server=utf8mb4              # 设置服务器的默认字符集
collation-server=utf8mb4_unicode_ci       # 默认字符集排序规则
lower_case_table_names=1                  # 表名不区分大小写

# 事件调度
event_scheduler=ON                        # 启用事件调度器

主要参数说明:

基础设置
  • basedir:MySQL 安装路径。
  • datadir:MySQL 数据文件存储路径。
  • port:MySQL 监听的端口,默认是 3306。
  • socket:用于本地连接的 Unix 套接字文件路径。
  • pid-file:存储 MySQL 进程 ID 的文件路径。
性能优化
  • max_connections:设置允许的最大客户端并发连接数。
  • innodb_buffer_pool_size:InnoDB 缓冲池大小,决定缓存数据的数量。
  • thread_cache_size:定义线程缓存的大小,减少线程创建的开销。
  • innodb_log_file_size:InnoDB 日志文件大小,影响崩溃恢复速度。
  • table_open_cache:表缓存大小,影响数据库打开表的速度。
日志记录
  • log-error:错误日志文件路径,用于记录 MySQL 启动、停止和运行时的错误。
  • slow_query_log:启用慢查询日志。
  • log-bin:启用二进制日志,用于数据恢复和主从复制。
  • expire_logs_days:二进制日志保留天数。
  • sync_binlog:控制二进制日志的同步频率,1 为每次事务提交都同步,确保数据安全。
安全性设置
  • skip-symbolic-links:禁用符号链接,防止不安全的访问。
  • bind-address:限制 MySQL 只监听本地 IP(127.0.0.1)。
  • secure-file-priv:限制文件导入导出操作的路径。
复制设置
  • server-id:在主从复制中,每个服务器必须有唯一的 server-id
  • binlog_format:设置二进制日志格式为 ROW,记录每一行数据的变更。
存储引擎和字符集
  • default-storage-engine:设置 MySQL 的默认存储引擎为 InnoDB
  • character-set-server:设置 MySQL 服务器的默认字符集为 utf8mb4
  • collation-server:设置字符集的默认排序规则。
事件调度
  • event_scheduler:启用事件调度器。

总结

[mysqld] 部分是 MySQL 服务器配置的核心,涉及到数据库性能、日志记录、安全性和复制等方面的设置。

需要注意的一点是, mysqld_safe 和 mysql.server 这两个程序在启动时都会读取 [mysqld] 选项组中的内容。

为了直观感受一下,我们挑一些启动命令来看一下它们能读取的选项组都有哪些:

启动命令

启动命令           类别                     能读取的组
mysqld          启动服务器           [mysqld] 、 [server]
mysqld_safe     启动服务器      [mysqld] 、 [server] 、 [mysqld_safe]
mysql.server    启动服务器        [mysqld] 、 [server] 、 [mysql.server]
mysql           启动客户端             [mysql] 、 [client]
mysqladmin      启动客户端           [mysqladmin] 、 [client]
mysqldump       启动客户端             [mysqldump] 、 [client]

启动mysql服务端一般都是用的mysql.server 命令获取mysqld命令,剩下的组的配置细节小伙伴们自己探索一下吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值