docker配置mysql集群_Docker安装MySQL集群【读写分离】

目录

目录

9356c7c9f7385f3ede65bf800abfd972.png

1、下载mysql镜像

docker search mysql

4cd86a166a203a61b9f43911d6a5ea96.png

docker pull mysql:5.7

7bff8fc48706cabbbb430a8124cef014.png

docker images

930ff9ab81ebae15afae3c0765c30cb2.png

2、创建Master实例并启动

docker run -p 3307:3306 --name mysql-master \

-v /mydata/mysql/master/log:/var/log/mysql \

-v /mydata/mysql/master/data:/var/lib/mysql \

-v /mydata/mysql/master/conf:/etc/mysql \

-e MYSQL_ROOT_PASSWORD=root \

-d mysql:5.7

参数说明

-p 3307:3306:将容器的3306端口映射到主机的3307端口

-v /mydata/mysql/master/conf:/etc/mysql:将配置文件夹挂在到主机

-v /mydata/mysql/master/log:/var/log/mysql:将日志文件夹挂载到主机

-v /mydata/mysql/master/data:/var/lib/mysql/:将配置文件夹挂载到主机

-e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码

b67ab8387f1b9bf27750079ad962adeb.png

修改master基本配置

vim /mydata/mysql/master/conf/my.cnf

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

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

注意:skip-name-resolve一定要加,不然连接mysql会超级慢

b131264c61fa0db23b1461faeebe38ff.png

3、创建Slave实例并启动

docker run -p 3316:3306 --name mysql-slaver-01 \

-v /mydata/mysql/slaver/log:/var/log/mysql \

-v /mydata/mysql/slaver/data:/var/lib/mysql \

-v /mydata/mysql/slaver/conf:/etc/mysql \

-e MYSQL_ROOT_PASSWORD=root \

-d mysql:5.7

修改slave基本配置

vim /mydata/mysql/slaver/conf/my.cnf

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

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

22ac71d1050d5c4dca6ffba92ffaeebe.png

4、添加master主从复制部分配置

vim /mydata/mysql/master/conf/my.cnf

server_id=1

log-bin=mysql-bin

read-only=0

binlog-do-db=gmall_ums

binlog-do-db=gmall_pms

binlog-do-db=gmall_oms

binlog-do-db=gmall_sms

binlog-do-db=gmall_cms

replicate-ignore-db=mysql

replicate-ignore-db=sys

replicate-ignore-db=information_schema

replicate-ignore-db=performance_schema

f6ed3abb63d9473eb24782928ac09517.png

重启容器

5、添加Slave主从复制部分配置

server_id=2

log-bin=mysql-bin

read-only=1

binlog-do-db=gmall_ums

binlog-do-db=gmall_pms

binlog-do-db=gmall_oms

binlog-do-db=gmall_sms

binlog-do-db=gmall_cms

replicate-ignore-db=mysql

replicate-ignore-db=sys

replicate-ignore-db=information_schema

replicate-ignore-db=performance_schema

46243e1036471321c5f3b3cbc880e95f.png

重启容器

637f52c83143497a2be74e75449ba7d4.png

6、为master授权用户来他的同步数据

d7f617f860ab6ec85c14c3d759c1f921.png

1、进入主库

docker exec -it 4fdd7f265228 /bin/bash

ca66e5bdf8b2eb70fd790878b1ca34ac.png

2、进入主库mysql数据库

mysql -u root -p

8b2e283ef469365722fbc2832922df86.png

1)、授权root可以远程访问( 主从无关,为了方便我们远程连接mysql)grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

flush privileges;

92ceb9da8c40025e181e4d592cf15330.png

2)、添加用来同步的用户GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';

f43fa785ed96a75039f1cd9f1b7d6afd.png

3)、查看数据库的状态show master status\G;

170ba201cc067300c39ea526ce42ff36.png

3、进入从库mysql数据库

f3d1e6b13c8ed9948f519269d3d2d62a.png

1)、授权root可以远程访问( 主从无关,为了方便我们远程连接mysql)grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

flush privileges;

92ceb9da8c40025e181e4d592cf15330.png

2)、设置主库连接change master to master_host='192.168.116.129',master_user='backup',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0,master_port=3307;

61682742ebfcfae37d3ff9cafffd33c8.png

3)、启动从库同步start slave;

778efb9cab94db8bf938a371dc2c6ddd.png

4)、查看从库状态show slave status\G;

b4f655892873d9e5358e8e9a79654fdd.png

至此主从配置完成;

总结:

1)、主从数据库在自己配置文件中声明需要同步哪个数据库,忽略哪个数据库等信息。并且server-id不能一样

2)、主库授权某个账号密码来同步自己的数据

3)、从库使用这个账号密码连接主库来同步数据

演示效果

ebfee3c7c298d30eb803b40d936685ab.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值