美文网首页
docker mysql 读写分离

docker mysql 读写分离

作者: 街头民工 | 来源:发表于2022-04-18 11:33 被阅读0次

参考文档

#启动容器 one
docker run --name monemysql -d -p 3317:3306 -e MYSQL_ROOT_PASSWORD=root -v /Users/mac/project/docker/mysql/mone/data:/var/lib/mysql  --privileged=true  mysql:latest

#拷贝配置文件文件
Docker cp monemysql:/etc/mysql/my.cnf my.cnf 
#删除
Docker rm monemysql
#重新启动
docker run --name monemysql -d -p 3317:3306 -e MYSQL_ROOT_PASSWORD=root -v /Users/mac/project/docker/mysql/mone/data:/var/lib/mysql -v /Users/mac/project/docker/mysql/mone/conf/my.cnf:/etc/mysql/my.cnf --privileged=true  mysql:latest


#启动容器 two
docker run --name mtwomysql -d -p 3318:3306 -e MYSQL_ROOT_PASSWORD=root -v /Users/mac/project/docker/mysql/mtwo/data:/var/lib/mysql   --privileged=true  mysql:latest


Docker cp mtwomysql:/etc/mysql/my.cnf my.cnf 

docker run --name mtwomysql -d -p 3318:3306 -e MYSQL_ROOT_PASSWORD=root -v /Users/mac/project/docker/mysql/mtwo/data:/var/lib/mysql -v /Users/mac/project/docker/mysql/mtwo/conf/my.cnf:/etc/mysql/my.cnf  --privileged=true  mysql:latest

#进入mone容器
docker exec -it monemysql mysql -u root -p
 
#启动mysql命令,刚在创建窗口时我们把密码设置为:root

 
#创建一个用户来同步数据
#这里表示创建一个slave同步账号slave,允许访问的IP地址为%,%表示通配符

#数据库8版本的时候  建密码要用 sha256_password
CREATE USER 'houcl'@'%' IDENTIFIED WITH sha256_password by '123456';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'houcl'@'%';

GRANT ALL PRIVILEGES ON *.* TO 'houcl'@'%';

FLUSH PRIVILEGES;

#查看状态,记住File、Position的值,在mtwo中将用到
show master status;


#进入mtwo容器
docker exec -it mtwomysql mysql -u root -p
 
#启动mysql命令,刚在创建窗口时我们把密码设置为:root

#设置主库链接,master_host即为容器IP,master_log_file和master_log_pos即为在mone容器中,通过show master status查出来的值;
change master to master_host='172.17.0.2',master_user='houcl',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=1290,master_port=3306;

#创建一个用户来同步数据
CREATE USER 'houcl'@'%' IDENTIFIED WITH sha256_password by '123456';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'houcl'@'%';

GRANT ALL PRIVILEGES ON *.* TO 'houcl'@'%';

FLUSH PRIVILEGES;

#启动同步
start slave;
 
#查看状态
show master status;

#进入mone容器
#启动mysql命令,刚在创建窗口时我们把密码设置为:root
docker exec -it monemysql mysql -u root -p
 
#设置mtwo主库链接,参数详细说明同上
change master to master_host='172.17.0.3',master_user='houcl',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=1288,master_port=3306;

#启动同步
start slave ;

#分别在两个容器查看,显示 yes 就可以了
show slave status\G;
image.png

验证

#在one 容器内运行
create database mone_demo;

use mone_demo;

create table userinfo(username varchar(50),age int);

insert into userinfo values('Tom',18);

select * from userinfo;

#然后去two 数据库查看是否存在相同数据
show databases

#在two 容器添加数据 然后去one 库查看
insert into userinfo values('mtwo',20);

#在启动MySQL服务的命令里加入记录错误日志的参数。
#示例如下:
log-error=/data/mysql/error/error.err
#查看到的最终结果为:
show variables like ‘log_error%’;
#修改文件夹的权限

重置 slave

reset slave

暂停 slave

Stop slave

删除用户

drop user houcl

相关文章

  • docker mycat mysql读写分离

    拉取mycat镜像 参考 基于docker的mysql主从,及其Mycat实现读写分离笔记 Docker安装Myc...

  • docker mysql 读写分离

    参考文档[https://www.cnblogs.com/jinjiangongzuoshi/p/9299567....

  • Mysql读写分离

    常见读写分离方式 MySQL-Proxy读写分离 Amoeba读写分离 Mycat读写分离 基于程序读写分离 My...

  • mysqlrouter的使用

    环境 在vm的docker中使用mysql router实现group replication 组复制的读写分离和...

  • mysql读写分离

    mysql读写分离 1、读写分离的介绍 MySQL读写分离基本原理是让master数据库处理写操作,slave数据...

  • docker搭建mysql读写分离

    写在前面 当mysql数据量不大且达到读写瓶颈的时候,读的性能消耗远大于写,我们可以将读和写分离开。本实例采用do...

  • Mysql读写分离(docker版)

    数据库不能承担起系统的高并发要求时,可以在用读写分离,实时的热备份,进行一主多从,从机承担大量的读取请求,而主机负...

  • Docker安装mysql读写分离

    mysql主从的机制主要是通过从服务器订阅主服务器的binlog日志实现。这里以一主双从的形式演示。 这三个mys...

  • docker部署mysql读写分离

    准备 docker下载镜像使用mysql8(都2021了还有那么多mysql5教程我也是醉了) 获得my.cnf文...

  • 20171211-15问题整理

    总摘要: 读写分离. mysql RR点击查看技术分享链接 2017-12-11摘要: 读写分离. mysql ...

网友评论

      本文标题:docker mysql 读写分离

      本文链接:https://www.haomeiwen.com/subject/yxhdertx.html