资讯专栏INFORMATION COLUMN

Docker环境MySQL主从部署

xiyang / 2052人阅读

摘要:环境准备拉取镜像准备两个配置文件主库配置文件从库配置文件启动两个容器,端口配置,数据库,数据库环境已准备好。查看主库状态记住查询结果,后面会用。测试在上操作,更改都会显示在上。

1、环境准备

拉取mysql镜像

docker pull mysql

准备两个mysql配置文件

# 主库配置文件my-master.cnf
[mysqld]
log-bin = mysql-bin
server-id = 1

# 从库配置文件my-slave.cnf
[mysqld]
server-id = 2

启动两个容器,端口配置
Host:3307,数据库master:3306
Host:3308,数据库slave:3306

docker run -d -e MYSQL_ROOT_PASSWORD=root 
 --name mysql-master 
  -v /root/mysql/my-master.cnf:/etc/mysql/my.cnf 
  -p 3307:3306 mysql

docker run -d -e MYSQL_ROOT_PASSWORD=root 
 --name mysql-slave 
  -v /root/mysql/my-slave.cnf:/etc/mysql/my.cnf 
  -p 3308:3306 mysql

环境已准备好。

具体参数如下:

ip

本机Host:172.18.134.10

master容器:172.17.0.2

slave容器:172.17.0.3

登录数据库命令

# 本机 -> master
mysql -h172.18.134.10 -P3307 -uroot -proot

# 本机 -> slave
mysql -h172.18.134.10 -P3308 -uroot -proot
2、主库配置

新建一个用户专门用来同步master,

CREATE USER "backup"@"%" IDENTIFIED BY "123456";

给backup用户分配备份的权限

GRANT REPLICATION SLAVE ON *.* to "backup"@"%" identified by "123456";

主库配置完成。

查看主库状态:

show master status;

记住查询结果,后面会用。

File: mysql-bin.000003

Position: 688

3、从库配置

从库通过IO线程连接master,所以需要指定master的信息,包括host, port, user, password

change master to master_host="172.17.0.2", 
    master_port=3306, 
    master_user="backup", 
    master_password="123456", 
    master_log_file="mysql-bin.000003", 
    master_log_pos=688;
start slave;

查看从库状态,

show slave statusG

如果输出,

               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.17.0.2
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 688
               Relay_Log_File: 6b0f3668aa62-relay-bin.000002
                Relay_Log_Pos: 913
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

则说明连接成功。

4、测试

在master上操作,更改都会显示在slave上。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27293.html

相关文章

  • 数人云工程师手记 | 双剑合璧,分布式部署两步走

    摘要:今天小数给大家带来的是数人云工程师金烨的分享,有关于自动快速部署服务相关组件的一些实践。当与相遇,双剑合璧,一切变得如此简单有趣。通过将服务注册到来做健康检查。 今天小数给大家带来的是数人云工程师金烨的分享,有关于自动快速部署DCOS服务相关组件的一些实践。当Ansible与Docker相遇,双剑合璧,一切变得如此简单有趣。 本次分享将包括以下内容: 云平台部署使用的服务、组件 Do...

    Jonathan Shieber 评论0 收藏0
  • MySQL 复制 - 性能与扩展性的基石 2:部署及其配置

    摘要:配置主库和备库。主库当前的二进制日志文件,和获得数据快照时在该二进制日志文件中的偏移量。它能够在备份时不阻塞服务器的操作,因此可以在不影响主库的情况下设置备库。 showImg(https://segmentfault.com/img/bVbqOEk?w=720&h=480); 正所谓理论造航母,现实小帆船。单有理论,不动手实践,学到的知识犹如空中楼阁。接下来,我们一起来看下如何一步步...

    刘德刚 评论0 收藏0
  • MySQL 复制 - 性能与扩展性的基石 2:部署及其配置

    摘要:配置主库和备库。主库当前的二进制日志文件,和获得数据快照时在该二进制日志文件中的偏移量。它能够在备份时不阻塞服务器的操作,因此可以在不影响主库的情况下设置备库。 showImg(https://segmentfault.com/img/bVbqOEk?w=720&h=480); 正所谓理论造航母,现实小帆船。单有理论,不动手实践,学到的知识犹如空中楼阁。接下来,我们一起来看下如何一步步...

    fobnn 评论0 收藏0

发表评论

0条评论

xiyang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<