mysqld --defaults-file=/myfolder/my.cnf --defaults-extra-file=/myfolder2/my.cnf

本文详细介绍了MySQL服务启动时如何解析配置文件,特别是--defaults-file和--defaults-extra-file选项的作用及它们之间的读取顺序。通过实际案例说明了这些选项如何影响MySQL的行为。

背景:mysqld同时指定了两个配置文件

mysqld --defaults-file=/myfolder/my.cnf --defaults-extra-file=/myfolder2/my.cnf

The /myfolder/my.cnf file has option set:

[mysqld]

skip-log-bin

/myfolder2/my.cnf has this option set:

[mysqld]

log-bin = /valid/path/to/mysqlbinlog

===============标准分割线=================

上干货

使用--defaults-file=FILE,mysql server仅从这个配置文件读取参数。(READ only the given option file.)

--defaults-extra-file=FILE的读取顺序在哪呢?在全局配置文件之后,用户配置文件之前。即不指定--default-file时,从以下文件顺序(第5个)读取配置文件。

测试了一下:

Bingo:

=========其他干货==========

mysqld读取的顺序:(第5个读取--defaults-extra-file=FILE指定的配置文件)

mysqld_safe的读取:(mysqld_safe调用mysqld,mysqld_multi也是同样,即mysqld也一样情况)

其他:

MySQL makes no guarantee about the order in which option files in the directory are read.

To work properly, each of these options must be given before other options.

When specifying file names as option values, avoid the use of the ~ shell metacharacter because it might not be interpreted as you expect.

 

 

 

拓展测试:

nohup /apps/svr/mysql57/bin/mysqld_safe --defaults-file=/apps/conf/mysql/mysql57_3306.cnf --skip-log-bin   --user=apps &

 

参考自:Mysql配置文件读取顺序 https://www.cnblogs.com/yangliheng/p/6475079.html

 

======End,=======

 

 

 

 

### `bin/mysqld` 命令使用说明 `bin/mysqld` 是 MySQL 的服务器守护进程,`--initialize` 选项用于初始化 MySQL 数据目录。以下是命令中各参数的含义: - `--defaults-file=/etc/my.cnf`:指定 MySQL 使用的配置文件配置文件中可以包含各种 MySQL 服务器的配置选项,如端口号、字符集等。 - `--basedir=/usr/local/mysql/`:指定 MySQL 的安装基础目录,MySQL 会根据这个目录来查找相关的库文件、二进制文件等。 - `--datadir=/data/mysql/`:指定 MySQL 数据文件的存储目录,数据库的数据、日志等文件都会存储在这个目录下。 - `--user=mysql`:指定以哪个用户身份来运行 MySQL 服务,通常使用专门的 `mysql` 用户以提高安全性。 - `--initialize`:初始化 MySQL 数据目录,创建系统表和初始数据。 ### 常见问题及解决方案 #### 权限问题 如果指定的用户没有足够的权限访问基础目录或数据目录,会导致初始化失败。需要确保 `mysql` 用户对 `/usr/local/mysql/` 和 `/data/mysql/` 目录有读写权限。可以使用以下命令修改目录权限: ```bash chown -R mysql:mysql /usr/local/mysql/ chown -R mysql:mysql /data/mysql/ ``` #### 配置文件问题 如果配置文件 `/etc/my.cnf` 存在语法错误,也会导致初始化失败。可以使用以下命令检查配置文件的语法: ```bash /usr/local/mysql/bin/mysqld --verbose --help --defaults-file=/etc/my.cnf ``` 如果输出中没有错误信息,说明配置文件语法正确。 #### 数据目录已存在 如果数据目录 `/data/mysql/` 已经存在且不为空,初始化会失败。可以先备份数据目录,然后删除该目录,再重新执行初始化命令。 ```bash mv /data/mysql/ /data/mysql_backup/ ``` ### 示例命令 以下是一个完整的初始化示例: ```bash bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值