Docker部署mysql8.x版本互为主从

这篇具有很好参考价值的文章主要介绍了Docker部署mysql8.x版本互为主从。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

两台服务器拉取mysql8.x镜像

192.168.197.136

192.168.197.137

docker pull mysql:8.0.28

Docker部署mysql8.x版本互为主从

两台服务器配置免密登录

生成秘钥   ssh-keygen   (一路回车默认即可)

Docker部署mysql8.x版本互为主从

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.197.137   将公钥发送到另一个节点

ssh root@192.168.197.137   测试是否是免密登录

然后来构建mysql容器

Master1

docker run -itd --name=master1 --net=host --restart=always -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.28

docker cp master1:/etc/mysql/my.cnf .   将配置文件拷贝出来

vim my.cnf    编辑配置文件

[mysqld]

server-id=1

log-bin=mysql-bin

skip-name-resolve

log_replica_updates

lower_case_table_names=1

interactive_timeout=7200

wait_timeout=86400

max_connections=4000

back_log=100

binlog_expire_logs_seconds=3

max_binlog_size=100M

character_set_server=utf8

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO

docker cp my.cnf  master1:/etc/mysql/my.cnf   编辑好的配置文件在拷贝进容器

docker restart master1  重启master1

然后进入数据库中创建主从同步用户

docker exec -it master1  mysql -uroot -p123456

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';   创建主从同步用户

GRANT ALL PRIVILEGES ON *.* TO slave; 给同步用户授权

flush privileges; 刷新一下

show master status\G   看下binlog日志起始位置

reset master;   清除binglog日志命令

Docker部署mysql8.x版本互为主从

master2操作

scp my.cnf  192.168.197.137:/root/    把配置文件直接发送一份给另一节点

vim my.cnf  修改一下 server-id 参数 两个节点不能相同

Docker部署mysql8.x版本互为主从

         

docker run -itd --name=master2 --net=host --restart=always -v /root/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.28     启动容器

然后进入数据库中创建主从同步用户

docker exec -it master2  mysql -uroot -p123456

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';   创建主从同步用户

GRANT ALL PRIVILEGES ON *.* TO slave; 给同步用户授权

flush privileges; 刷新一下

show master status\G   看下binlog日志起始位置

Docker部署mysql8.x版本互为主从

master1节点操作

docker exec -it master1  mysql -uroot -p123456

下面进行主主同步配置change操作前要先

stop slave;

然后 \e进入编辑  

报错了说是没有编辑器,需要下载一下

Docker部署mysql8.x版本互为主从

apt-get update

apt-get install vim

\e   然后编辑

change master to

master_host='192.168.197.137',

master_user='slave',

master_password='123456',

master_port=3306,

master_log_file='mysql-bin.000001',

master_log_pos=157,

master_connect_retry=60;

配置好后保存退出

master2节点操作

docker exec -it master1 /bin/bash

apt-get update

apt-get install vim   下载一下vim

mysql -uroot -p123456

下面进行主主同步配置change操作前要先

stop slave;

然后 \e进入编辑  

change master to

master_host='192.168.197.136',

master_user='slave',

master_password='123456',

master_port=3306,

master_log_file='mysql-bin.000001',

master_log_pos=157,

master_connect_retry=60;

配置好后保存退出

start slave;  两个节点都要启动slave

show slave status \G; 启动后查看同步状态

发现             Slave_IO_Running: Connecting  是失败的

报错是mysql8.x版本密码插件导致的                Last_IO_Error: error connecting to master 'slave@192.168.197.136:3306' - retry-time: 60 retries: 1 message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.

Docker部署mysql8.x版本互为主从

这边做一下修改slave用户密码插件的操作两个节点都操作

use mysql

select host ,user ,plugin  from user;      查看一下用户的密码插件

Docker部署mysql8.x版本互为主从

alter user 'slave'@'%' identified with mysql_native_password by '123456';   把slave的密码策略换成 mysql_native_password

  Docker部署mysql8.x版本互为主从

两台服务器同步效果不正常,都要进行以下操作: 在2台机器数据保持一致的情况 下。 从节点: stop slave; #停止同步 reset slave; #清除主节点信息 主节点: reset master; #清除bin1og日志

然后操作stop slave; 然后 \e进入编辑 按照上面的步骤在来一遍即可

  

show slave status \G; 完成后查看同步状态

Docker部署mysql8.x版本互为主从

Docker部署mysql8.x版本互为主从 

配置成功后在master1创建库表进行查看是否同步

create database db_2023888;

show databases;    master2节点查看

Docker部署mysql8.x版本互为主从

Mysql8.x版本互为主从配置完成。 

 文章来源地址https://www.toymoban.com/news/detail-410443.html

 

 

 

 

 

 

 

 

到了这里,关于Docker部署mysql8.x版本互为主从的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mysql数据库搭建互为主从mysqlB的配置文件

    [client] port=3306 socket=/var/lib/mysql/mysql.sock [mysqld] port=3306 socket=/var/lib/mysql/mysql.sock datadir=/var/lib/mysql pid-file=/var/lib/mysql/mysql.pid log-error=/var/log/mysql.err server-id=2 #偶数ID auto_increment_offset=2 auto_increment_increment=2 #打开二进制功能,MASTER主服务器必须打开此项 log-bin=mysql-bin binlog-format=MIXED

    2024年02月15日
    浏览(34)
  • 基于docker-compsoe.yml配置mysql8.0主从 (需要进入主从容器执行命令)

    主my.cnf文件 从my.cnf文件 主要的yml配置 主容器的操作 进入主mysql容器 3306端口的 docker exec -it 容器id /bin/bash 登录mysql mysql -uroot -p 创建主从复制的账号 - 创建用户slave,密码123456 CREATE USER \\\'slave\\\'@\\\'%\\\' IDENTIFIED BY \\\'123456\\\'; 授权主从复制 GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO \\\'slave\\\'@

    2024年02月16日
    浏览(29)
  • linux docker 部署mysql8以上版本时弹出Access denied for user root @ localhost (using password: YES)的解决方案

    该结论使用于java启动报错 也试用于windows连接报错 不止linux docker         1.配置文件的mysql或者命令参数的 密码需要带英文单引号         2.不可以挂载之前别的容器使用过的mysql数据目录或者你的执行命令里改过密码,比如之前是run mysql password 123  你改成了run mysql

    2024年02月19日
    浏览(27)
  • Docker Compose部署Mysql8

    MySQL是一个广泛使用的开源关系型数据库管理系统,它被用于许多Web应用程序的数据存储和管理。MySQL提供了高性能、可靠性和灵活性,让开发者能够轻松处理各种规模的数据处理需求。 下面是一些关于MySQL的重要特点和功能: 关系型数据库 : MySQL是一个基于关系模型的数据库

    2024年02月05日
    浏览(30)
  • docker Mysql部署主从集群

    目录 1 docker安装 2 docker mysql 安装配置 远程连接 2.0 配置 2.0.1 文件夹 配置 2.0.2 主库文件配置 my.cnf - 主库 id 和 开启二进制日志  2.0.3 从库文件配置 - 从库 id 2.1 mysql 主 - 第一个端口号和从库不一样 2.1.1 docker run 主库 2.1.2  查看主库二进制日志 2.2 mysql 从库 2.2.1 docker run 从库

    2024年02月02日
    浏览(34)
  • docker 部署 mysql8.0 无法访问

    这是我的启动命令,发现没有我这里是没有指定端口的 这段命令的来源是docker 镜像仓库官网 使用 docker ps 查看 发现端口有没有什么不一样没 正常的都有 0.0.0.0:端口 我的这个没有 于是我把这个容器删除了 docker rm -f 容器Id ,重新创建了一个 docker run -p 3306:3306 --name mysql -e MYSQL_

    2024年02月15日
    浏览(26)
  • Docker集群部署-MySQL主从复制

    利用Docker实现MySQL主从复制架构的部署,实现1主1从集群配置。 要求实验主机能够连接外网,已经正确安装Docker,并关闭防火墙和selinux。 新建主服务器容器实例3307 # 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 /m

    2024年02月12日
    浏览(26)
  • 基于 Docker 的 MySQL 主从复制搭建(Mac M1版本)

    系统:Macbook M1 镜像版本:mysql:5.7 如果是要查 slave 连接不上 master 的问题,可以直接跳到文章末尾踩坑处 准备工作 拉取镜像 本地数据卷挂载 因为mysql不挂载的话,重启丢失数据,所以在本地创建三个空的文件夹 conf、data、log 即可 部署mysql_master(主) 运行master容器 不加 -

    2024年02月10日
    浏览(27)
  • Docker下部署mysql8.0,超详细零基础教程!

    操作前确认当前linux用户是管理员,并且安装有Docker。 启动docker 拉取镜像 查看镜像是否拉取成功 创建mysql容器 #注意前一定加空格 为什么上边要手动创建自己的路径?我们先来看如果不指定一个自己的路径,那么mysql自动生成的路径是啥样的。 查看未指定数据存储路径的

    2024年03月22日
    浏览(32)
  • MYSQL8主从复制

    关键点: 主库 创建一个 远程用户 并 授予复制权限 。 在 主库 和 从库 的 my.cnf 配置 服务器唯一id ; 开启 全局事务ID ; 在 my.cnf 文件中启用 二进制日志 记录,并为其分配一个 唯一的服务器 ID 。 关闭 主节点 和 从节点 的mysql服务。 主服务器配置 每个数据库实例的 服务器ID 要

    2024年02月01日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包