docker部署2套jumpserver并且mysql互为主从

1、数据库

docker pull mysql:5.7

配置A机器
run不了就开关防火墙试试,重启docker

docker run -p 3306:3306 --name mysql-slave -v /root/mysql/slavemysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123qazwsx -d mysql:5.7

说明:
-p 3306:3306 是把容器的3306端口映射到本机的3316端口
–name 是给运行的容器一个别名
-e MYSQL_ROOT_PASSWORD=123qazwsx 是初始化 MySQL 的密码
**密码不能刷纯数字!不然进不了jumpserver**

配置B机器

docker run -p 3306:3306 --name mysql-master -v /root/mysql/mastermysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123qazwsx -d mysql:5.7

分别进入容器

docker exec -it mysql-master /bin/bash

分别进入数据库

mysql -uroot -p123qazwsx

mysql出现明密码不给连接解决办法
https://blog.csdn.net/baiyan_er/article/details/79966217?utm_source=blogxgwz1

分别赋予root用户远程连接的权限

grant all privileges on *.* to 'root'@'%' identified by '密码';

分别命令安装vim

apt-get update
apt-get install vim		即可然后我们就可以使用vim编辑my.cnf
vi /etc/mysql/my.cnf

mysql_A的配置文件添加以下内容

[mysqld]
# for repl
server-id = 1
binlog_checksum=none #如果两个mysql的版本不一样则加入此行
log-bin = mysql-bin
auto-increment-increment= 2 # 应设为整个结构中服务器的总数
auto-increment-offset = 1 # 设定数据库中自动增长的起点,避免两台服务器数据同步时出现主键冲突

mysql_B的配置文件添加以下内容

[mysqld]
# for repl
server-id = 2
log-bin = mysql-bin
auto-increment-increment= 2
auto-increment-offset = 2

分别重启服务

service mysql restart

分别重新启动容器

docker start mysql-master

配置A数据库
进入数据库查询状态

mysql -uroot -p123qazwsx
show master status;

把File和Position字段的值写到下面

change master to master_host='172.20.184.48', master_user='root', master_password='123qazwsx', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 150, master_connect_retry=30;

master_host :Master的地址

master_port:Master的端口号,指的是容器的端口号

master_user:用于数据同步的用户

master_password:用于同步的用户的密码

master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值

master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值

master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒
在这里插入图片描述

start slave;

reset slave;

show slave status \G;

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

配置B数据库
步骤跟A的一样!!

在这里插入图片描述

A和B配置完成都是yes后开始创建jumpserver表
创建jumpserver表

create database jumpserver default charset 'utf8' collate 'utf8_bin';
show databases;

刷新

flush privileges;

随便在其中一个数据库创建,看看同步没有。

错误问题解决
Slave_SQL_Running: No
解决办法II:停止问题为no的slave看下面
mysql> stop slave;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;
https://blog.51cto.com/kerry/277414
SlaveIORunning=no可以清理日志试试

RESET MASTER;清理日志
reset slave;)

安装jumpserver
run不了就开关防火墙试试,重启docker,不然会报错,run好再关闭防火墙,不然Navicat 连不上,资产也可能连接不成功
A机器安装:

docker run --name zhu -d \
  -v /opt/jumpserver/data:/opt/jumpserver/data \
  -v /opt/jumpserver/mysql:/var/lib/mysql \
  -p 80:80 \
  -p 2222:2222 \
  -e SECRET_KEY=SfyTWAQGgrexjbc7UlA31bsZhVfJu81H5OA3Q3vk7aYh7aKGk6 \
  -e BOOTSTRAP_TOKEN=6rtBRCh3DB2ymQYu \
  -e DB_HOST=192.168.166.130 \
  -e DB_PORT=3306 \
  -e DB_USER=root \
  -e DB_PASSWORD=123qazwsx \
  -e DB_NAME=jumpserver \
  --privileged=true \
  jumpserver/jms_all:2.0.1

B机器安装:

docker run --name cong -d \
  -v /opt/jumpserver/data:/opt/jumpserver/data \
  -v /opt/jumpserver/mysql:/var/lib/mysql \
  -p 80:80 \
  -p 2222:2222 \
  -e SECRET_KEY=SfyTWAQGgrexjbc7UlA31bsZhVfJu81H5OA3Q3vk7aYh7aKGk6 \
  -e BOOTSTRAP_TOKEN=6rtBRCh3DB2ymQYu \
  -e DB_HOST=192.168.166.131 \
  -e DB_PORT=3306 \
  -e DB_USER=root \
  -e DB_PASSWORD=123qazwsx \
  -e DB_NAME=jumpserver \
  --privileged=true \
  jumpserver/jms_all:2.0.1

在这里插入图片描述

参考链接
https://blog.csdn.net/starrykey/article/details/52232338
https://www.cnblogs.com/songwenjie/p/9371422.html

注意!!!!如果是恢复到本机器,下面就不用操作了。
恢复到其他机器要删除jumpserver.key和.access_ key 文件,不然ssh远程终端会提示“No asset id or system user id found, exit”。rdp远程会提示“您没有权限访问此连接。如果需要访问此连接,请联系管理员授权,或检查系统设置。

jumpserver.key路径为cd /config/guacamole/keys
.access_ key路径(2.0.1版本)为cd /opt/koko/data/keys------注意.access_ key为隐藏文件,ls -a 查看,新版(2.2.2版本)的路径是cd /config/guacamole/data/keys/jumpserver.key

rm -f /config/guacamole/keys/jumpserver.key
rm -f /opt/koko/data/keys/.access_key

把不在线的终端都删除!!!!!
然后重启容器就OK

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值