专栏首页算法之名Docker安装mysql8主从结构 顶

Docker安装mysql8主从结构 顶

准备两台服务器,假设IP地址为

172.31.27.67 主服务器

172.31.27.69 从服务器

因为我用的镜像是docker.io/cytopia/mysql-8.0,所以我们需要先把该镜像给pull下来。

docker pull docker.io/cytopia/mysql-8.0

在/home下建一个文件夹

mkdir /home/wen

在主服务器建一个master.my.cnf

内容如下

[client] socket = /var/sock/mysqld/mysqld.sock [mysql] socket = /var/sock/mysqld/mysqld.sock [mysqld] skip-host-cache skip-name-resolve datadir = /var/lib/mysql user = mysql port = 3306 bind-address = 0.0.0.0 socket = /var/sock/mysqld/mysqld.sock pid-file = /var/run/mysqld/mysqld.pid general_log_file = /var/log/mysql/query.log slow_query_log_file = /var/log/mysql/slow.log log-error = /var/log/mysql/error.log log-bin=mysql-bin server-id=1 !includedir /etc/my.cnf.d/ !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/docker-default.d/

在从服务器建一个slave.my.cnf,内容如下

[client] socket = /var/sock/mysqld/mysqld.sock [mysql] socket = /var/sock/mysqld/mysqld.sock [mysqld] skip-host-cache skip-name-resolve datadir = /var/lib/mysql user = mysql port = 3306 bind-address = 0.0.0.0 socket = /var/sock/mysqld/mysqld.sock pid-file = /var/run/mysqld/mysqld.pid general_log_file = /var/log/mysql/query.log slow_query_log_file = /var/log/mysql/slow.log log-error = /var/log/mysql/error.log log-bin=mysql-bin server-id=2 !includedir /etc/my.cnf.d/ !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/docker-default.d/

这里他们的server-id要区分开

在主服务器启动(密码由你自己设定)

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=abcd123 -p 3307:3306 -v /etc/localtime:/etc/localtime:ro -v /home/wen/master.my.cnf:/etc/my.cnf docker.io/cytopia/mysql-8.0

在从服务器启动

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=abcd123 -p 3306:3306 -v /etc/localtime:/etc/localtime:ro -v /home/wen/slave.my.cnf:/etc/my.cnf docker.io/cytopia/mysql-8.0

使用数据库连接工具进行连接,先连接主服务器的数据库

依次执行

GRANT REPLICATION SLAVE ON *.* TO 'root'@'%';

flush privileges;

show master status;

可以看到主数据库的状态

切换到从数据库,依次执行

CHANGE MASTER TO MASTER_HOST='172.31.27.67', MASTER_PORT=3307, MASTER_USER='root', MASTER_PASSWORD='abcd123', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=6143;

start slave;

show slave status;

如果我们看到

其中Slave_IO_Running,Slave_SQL_Running必须为Yes,表示同步成功,否则执行

stop slave;

将之前的动作重新执行一遍。之后我们在主库做的SQL语句执行,会同步到从库中来。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 解析反射 顶

    反射离不开Class.forName(),我们先从Class.forName说起。

    算法之名
  • mysql 8本地源码安装注意事项

    yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-deve...

    算法之名
  • 使用桥接模式来显示下单结果 顶

    在用工厂方法模式来下不同订单 中我们看到,我们只简单显示来一个“下单成功”,但实际上我们需要给用户返回到结果可能多种多样。

    算法之名
  • 使用 go-mysql-elasticsearch 把 MySQL 中的业务日志导入 Elasticsearch

    相当一部分应用的日志是保存在数据库之中的,这些陈旧又稳定的应用在支撑着业务的运行。它们产生的日志通常来说也是有其价值的,但是如果能够融入到目前较为通用的 Ela...

    崔秀龙
  • CentOS 安装 nginx+tomcat+java+mysql运行环境

    本文介绍了CentOS7 64 Java,Tomcat,MySQL,Maven热部署等服务器环境的搭建过程。

    haikangweishi
  • 工信部:我国5G基站超13万个,5G应用集中在物联网

    近日,工信部部长苗圩在工业通信业发展情况新闻发布会上公布了我国5G建设的最新进展:2019年6月份,我国正式启动5G商用,到年底全国共建成5G基站超13万个。

    镁客网
  • Mysql数据库设置主从同步

    锁定所有表(防止数据库状态值变化,锁定后,这时候只能读,不能写,写请求会在解锁后执行)

    用户2416682
  • 获取session的几种方式

    ActionContext.getContext().getSession() 返回类型为Map<String,Object>

    qubianzhong
  • 安装MySQL

    吟风者
  • mysql安装GENERALMyISAMSAFETYDATA STORAGEBINARY LOGGINGREPLICATIONCACHES AND LIMITSINNODBLOGGINGFOR SLA

    MYSQL数据库安装文档 本文档是MYSQL-5.6.25在CENTOS 6.5 64位版本上安装的文档,经过测试并没有发现问题。 安装以前先查看服务器里是...

    98k

扫码关注云+社区

领取腾讯云代金券