docker 配置mysql时外部挂载配置文件配置server-id未生效

在使用docker搭建一次msyql的主从复制时,外部配置文件配置了不同的server-id,如下图:

主机:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
server-id=1
binlog_format=STATEMENT
init_connect=' SET collation_connection = utf8_unicode_ci '
init_connect=' SET NAMES utf8 '
character-set-server=utf8
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake 
skip-name-resolve

从机:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
server-id=3
binlog_format=STATEMENT
init_connect=' SET collation_connection = utf8_unicode_ci '
init_connect=' SET NAMES utf8 '
character-set-server=utf8
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake 
skip-name-resolve

本人将MySQL的配置文件挂载到了外部的MySQL的conf目录下。启动时使用docker命令:

docker run -p 3306:3306 --name mysql \
-v /home/用户名/mysql/log:/var/log/mysql \
-v /home/用户名/mysql/data:/var/lib/mysql \
-v /home/用户名/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:latest

当我自信满满查看从机连接状态时 ,不出意外还是出意外了,他竟然报错了
在这里插入图片描述
大概的意思主机和从机有一样的server_id,需要配置不同的server_id,我记得我明明配置的从机的id是3啊,主机是1,怎么会一样呢,于是我进入从机MySQL查看server_id:
在这里插入图片描述
不对啊 我明明在外面配置的server_id=3啊 怎么会显示是1呢?离了个大谱啊,我起初怀疑是我启动时挂载的配置文件没有生效,于是我在auto.con中改了MySQL的uuid

[root@slave2 data]# cat auto.cnf 
[auto]
server-uuid=93b7f941-8bde-11ed-8fba-0242ac110005

之后进容器内部查看uuid
在这里插入图片描述
不对,一样啊,我的配置文件生效了啊,一样的启动方式,为什么server_id没有生效,离大谱啊,我怀疑是不是配置文件没有加载到容器内部,于是我又进入容器目录下 /etc/mysql/mysql.conf 就是我挂载的那个目录查看
在这里插入图片描述
明明改了啊,为什么没有加载到呢,我苦思不得其原因,片刻之后,我灵光一现,既然没有加载到,会不会是他背着我加载了其他的配置类,于是我就去查了下MySQL配置文件的启动顺序

/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/mysql/etc/my.cnf
~/.my.cnf
其他自定义路径下的my.cnf,例如:/data/mysql/yejr_3306/my.cnf

果然啊,我加载的是/etc/mysql下的配置文件,他的优先级不是最高的,我尝试将/etc/my.cnf挂载到外部并进行配置,重新启动

docker run -p 3307:3306 --name mysql \
-v /home/用户名/mysql/log:/var/log/mysql \
-v /home/用户名/mysql/data:/var/lib/mysql \
-v /home/用户名/mysql/conf:/etc/mysql/conf.d \
-v /home/用户名/mysql/my.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:latest

之后就成功了,我就不贴图了,到此也就结束了,希望我的这次经历可以给各位看官大佬帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值