基于docker部署MySQL读写分离库

第一步,创建mysql的工作目录

分别为主库和从库创建配置目录及工作目录等。

主库:
mysql
 - master
   - conf
   - data
   - logs
从库:
mysql
 - slave
   - conf
   - data
   - logs

第二步,添加配置文件

1 在主库目录master/conf目录下,创建文件my.cnf,并加入以下内容

[mysqld]
log-bin=mysql-bin
server-id=1

2 在从库目录slave/conf目录下,创建文件my.cnf,并加入以下内容

[mysqld]
log-bin=mysql-bin
server-id=2

注意:主库和从库的server-id要不一样。

第三步,创建主库

运行docker命令:

docker run --restart=always -p 3307:3306 -v /mysql/master/conf:/etc/mysql -v /mysql/master/logs:/var/log/mysql -v /mysql/master/data:/var/lib/mysql --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 

这样,主库就创建好了,端口是:3307,ROOT密码是:123456。

注意:-v 后面的参数是本地目录映射到docker目录,冒号前面是本地目录,要与你在第一步中创建的主库的目录相一致。

第四步,创建从库

运行docker命令:

docker run --restart=always -p 3308:3306 -v /mysql/slave/conf:/etc/mysql -v /mysql/slave/logs:/var/log/mysql -v /mysql/slave/data:/var/lib/mysql --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

这样,从库就创建好了,端口是:3308,ROOT密码是:123456。

第五步,主库设置

1 创建并授权从库同步用户

通过客户端或命令行连接主库,然后运行命令:

GRANT REPLICATION SLAVE ON *.* to 'user'@'%' identified by 'mysql';

这样,就在主库中创建了一个密码为“mysql”的“user”用户。

2 查询主库的binlog信息,并记录。

运行命令:

show master status;

会得到binlog日志信息:

'mysql-bin.000003', '429', '', '', ''

第六步,从库设置

通过客户端或命令行连接从库,然后运行命令,从库中的同步信息:

change master to master_host='127.0.0.1', master_user='user', master_log_file='mysql-bin.000003', master_log_pos=429, master_port=3307, master_password='mysql';

最后,启动从库同步:

start slave;

运行成功后,主从库就配置好了。

其它

查看从库的运行状态:

show slave status \G;

SlaveIORunning 和 SlaveSQLRunning 都是Yes,说明主从复制已经开启。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值