CentOS 7.2 基于Docker实现MySQL主从架构
原文地址:https://blog.csdn.net/sunnyfg/article/details/80655823
1.安装Docker(略)
Centos7下安装Docker : https://www.cnblogs.com/jiangxiaobo/p/10904002.html
https://www.runoob.com/docker/centos-docker-install.html
2.加载mysql镜像
https://www.runoob.com/docker/docker-install-mysql.html
docker pull mysql:5.6
3.添加主从数据库的配置文件
##新建目录和文件
sudo mkdir -p /usr/local/mysqlData/master/cnf
sudo mkdir -p /usr/local/mysqlData/master/data
sudo mkdir -p /usr/local/mysqlData/slave/cnf
sudo mkdir -p /usr/local/mysqlData/slave/data
sudo touch /usr/local/mysqlData/master/cnf/mysql.cnf
sudo touch /usr/local/mysqlData/slave/cnf/mysql.cnf
编辑 /usr/local/mysqlData/master/cnf/mysql.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql symbolic-links= character-set-server = utf8
#skip-networking
innodb_print_all_deadlocks =
max_connections =
max_connect_errors =
open_files_limit =
table_open_cache =
max_allowed_packet = 4M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 28M
key_buffer_size = 4M thread_cache_size = query_cache_type =
query_cache_size = 8M
query_cache_limit = 2M ft_min_word_len = log-bin = mysql-bin
server-id =
binlog_format = mixed performance_schema =
explicit_defaults_for_timestamp #lower_case_table_names = interactive_timeout =
wait_timeout = # Recommended in standard MySQL setup sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES [mysqldump]
quick
max_allowed_packet = 16M [myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
编辑/usr/local/mysqlData/slave/cnf/mysql.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql symbolic-links= character-set-server = utf8
#skip-networking
innodb_print_all_deadlocks =
max_connections =
max_connect_errors =
open_files_limit =
table_open_cache =
max_allowed_packet = 4M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 28M
key_buffer_size = 4M thread_cache_size = query_cache_type =
query_cache_size = 8M
query_cache_limit = 2M ft_min_word_len = log-bin = mysql-bin
server-id =
binlog_format = mixed performance_schema =
explicit_defaults_for_timestamp #lower_case_table_names = interactive_timeout =
wait_timeout = # Recommended in standard MySQL setup sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES [mysqldump]
quick
max_allowed_packet = 16M [myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
4.启用master和slave容器
##master容器启用
sudo docker run -itd -p : --name master -v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD= mysql:5.6
##进入master容器
sudo docker exec -it master /bin/bash
root@ebc7017a58ef:/# ##slave容器启用
sudo docker run -itd -p : --name slave -v /usr/local/mysqlData/slave/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/slave/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD= mysql:5.6
root@ee3bb51b4d14:/#
5.数据库开启远程访问
##防火墙设置允许端口访问
sudo firewall-cmd --add-port=/tcp --permanent
sudo firewall-cdm --add-port=/tcp --permanent
sudo firewall-cmd --reload ##设置master数据库访问权限
root@ebc7017a58ef:/# mysql -uroot -p123456
mysql>grant all privileges on *.* to reader@'%' identified by 'readerpwd' with grant option;
Query OK, rows affected (0.01 sec) mysql>flush privileges;
Query OK, rows affected (0.01 sec) ##设置slave数据库访问权限
root@ee3bb51b4d14:/# mysql -uroot -p123456
mysql>grant all privileges on *.* to slave@'%' identified by 'slavepwd' with grant option;
Query OK, rows affected (0.01 sec) mysql>flush privileges;
Query OK, rows affected (0.01 sec)
6.设置主从同步
##登录master数据库查看master状态
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin. | | | | |
+------------------+----------+--------------+------------------+-------------------+
row in set (0.00 sec) mysql> 其中mysql-bin.000002为日志文件,后面会用到 ##配置slave
mysql> change master to master_host='172.17.0.6',master_user='reader',master_password='readerpwd',master_log_file='mysql-bin.000002',master_log_pos=; ##参数说明
master_host,master数据库的ip地址
master_user,连接master数据库的用户名
master_password,master_user的密码
master_log_file,日志文件,上一步中,master status对应的文件 ##启动slave,slave的操作有几个,start,stop和restart
mysql> start slave; ##查看slave状态
mysql> show slave status;
CentOS 7.2 基于Docker实现MySQL主从架构的更多相关文章
- 基于Docker的Mysql主从复制
基于Docker的Mysql主从复制搭建 为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相 ...
- 使用docker 实现MySQL主从同步/读写分离
1. 利用 docker 实现 mysql 主从同步 / 读写分离 为了保证数据的完整和安全,mysql 设计了主从同步,一个挂掉还可以用另个.最近重构论坛,想来改成主从吧.担心失误,就先拿 dock ...
- 基于Docker的MySql
MySQL Server安装教程 考虑到实际情况需要经常使用MySQL,为了方便大家能够快速基于Docker搭建MySQL这里以Linux下为例 进行说明,对于Windows用户来说直接通过查看官网H ...
- docker初识-docker安装、基于docker安装mysql及tomcat、基本命令
一.docker是什么 用go语言开发,开源的应用容器引擎,容器性能开销极低 二.整体架构图 Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 r ...
- 用 Docker 构建 MySQL 主从环境
开源Linux 一个执着于技术的公众号 前言 本篇文章记录使用 docker-compose 以及 dockerfile 来构建基于 binlog 的 MySQL 主从环境.如果你严格按照文中的步骤进 ...
- 基于docker的php调用基于docker的mysql数据库的方法
1:建立基于docker的mysql,参考 Mac上将brew安装的MySql改用Docker执行 2:建立基于docker�php image 在当前目录,建立Dockerfile,内容如下 FRO ...
- docker安装mysql主从
docker安装mysql主从 启动主库: 1.docker run --name master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5 ...
- Docker容器启动Mysql,Docker实现Mysql主从,读写分离
Docker容器启动Mysql,Docker实现Mysql主从,读写分离 一.Docker文件编排 二.配置主从复制 2.1 配置master 2.2 配置slave 三.验证主从复制 3.1 mas ...
- Docker构建mysql主从
一.为什么要搭建主从架构呢 1.数据安全,可以进行数据的备份. 2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器.从而缓解数据库访问的压力 3.故障 ...
随机推荐
- ORACLE 清理SYSAUX表空间
在数据库检查中发现SYSAUX表空间占用过大,SYSAUX是ORACLE10G开始提供的功能,用于数据库为SYSTEM表空间减负. 用以下语句查出相应的表空间值 select a.tablespace ...
- 云计算/云存储---Ceph和Openstack的cinder模块对接方法
1.创建存储池 在ceph节点中执行如下语句. #ceph osd pool create volumes 2.配置 OPENSTACK 的 CEPH 客户端 在ceph节点两次执行如下语句,两次{y ...
- Luogu P1970 花匠
Luogu P1970 花匠 本质上就是找最长的波浪序列. 因为考虑到第一个必选,所以可以让$lst=h[1]$. 此外,注意到$n=1$是要特判,其他情况下显然$ans\geq 2$,所以把$dir ...
- P1903 [国家集训队]数颜色 / 维护队列(带修莫队)
题目描述: 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会向你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. ...
- Java精通并发-从Thread与Runnable说起
java并发的学习从去年就已经中断了,之前只对于java并发的一些基础进行了一些巩固,对于这个硬技能不管是对于面试还是对于日常的实际开发来说都非常之重要,所以接下来给自己重新定一个新目标,准备重拾它一 ...
- (java)selenium webdriver爬虫学习--爬取阿里指数网站的每个分类的top50 相关数据;
主题:java 爬虫--爬取'阿里指数'网站的每个分类的top50 相关数据: 网站网址为:http://index.1688.com/alizs/top.htm?curType=offer& ...
- oracle中日期相关的区间
and czrqb.lsrqb_rh_sj >= to_date('[?query_date_begin|2011-09-01?]A', 'yyyy-mm-dd') and czrqb.lsrq ...
- PL/sql配置相关
可以安装oracle之后,打开PL/sql之后,自动找到oracle的路径以及数据库连接. 或者:安装oracle客户端,手动在PL/sql中配置oic以及oracle主目录的位置,并且配置好C: ...
- 关于Djiango中 前端多对多字段点(,)的显示问题
去除点的方法: <td> {% for roles_son in roles.permissions.all %} {% if forloop.last %} # 利用模板语言中的循环机制 ...
- LeetCode 381. Insert Delete GetRandom O(1) - Duplicates allowed
原题链接在这里:https://leetcode.com/problems/insert-delete-getrandom-o1-duplicates-allowed/?tab=Description ...