centos 7 部署docker mysql 5.6 容器主从服务
yum install -y wget docker
yum upgrade
给当前目录授权以便挂载到容器
mkdir -p /data/mysql
chcon -Rt svirt_sandbox_file_t /data/mysql
在宿主机上安装mysql client
下载 mysql client
wget http://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-client-5.6.33-1.rhel5.x86_64.rpm
需要安装 perl
yum install perl
rpm -ivh MySQL-client-5.6.33-1.rhel5.x86_64.rpm
必要时清理当前实验机器上的所有docker容器
docker stop `docker ps -a -q`
docker rm `docker ps -a -q`
拉取mysql5.6镜像
docker pull mysql:5.6
编写mysql主从服务的配置文件
/conf/my-m.cnf
# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # The MySQL Community Server configuration file. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html [client] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql explicit_defaults_for_timestamp innodb_buffer_pool_size=8M log-bin = mysql-bin server-id = 1 # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 #log-error = /var/log/mysql/error.log # Recommended in standard MySQL setup sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # * IMPORTANT: Additional settings that can override those from this file! # The files must end with '.cnf', otherwise they'll be ignored. # !includedir /etc/mysql/conf.d/
innodb_buffer_pool_size=8M
log-bin = mysql-bin
server-id = 1
/conf/my-s.cnf
# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # The MySQL Community Server configuration file. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html [client] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql explicit_defaults_for_timestamp innodb_buffer_pool_size=8M log-bin = mysql-bin server-id = 2 # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 #log-error = /var/log/mysql/error.log # Recommended in standard MySQL setup sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # * IMPORTANT: Additional settings that can override those from this file! # The files must end with '.cnf', otherwise they'll be ignored. # !includedir /etc/mysql/conf.d/
innodb_buffer_pool_size=8M
log-bin = mysql-bin
server-id = 2
启动容器
master:
docker run -p 3307:3306 --name mysql-master -v $PWD/conf/my-m.cnf:/etc/mysql/my.cnf -v $PWD/logs-master:/logs -v $PWD/data-master:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
slave:
docker run -p 3308:3306 --name mysql-slave -v $PWD/conf/my-s.cnf:/etc/mysql/my.cnf -v $PWD/logs-slave:/logs -v $PWD/data-slave:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
命令说明:
● -p 3306:3306:将容器的3306端口映射到主机的3306端口
● -v $PWD/conf/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
● -v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs
● -v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data
● -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
查看容器的IP地址
master:
docker inspect c290eb923d6a
slave:
docker inspect 7ffeb7add7ba
从宿主机登录master
mysql -uroot -p123456 -h172.17.0.2 -P 3306
登录后执行
GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';
show master status;
得到结果
mysql-bin.000004 | 312
从宿主机登录slave:
mysql -uroot -p123456 -h172.17.0.3 -P 3306
change master to master_host='172.17.0.2',master_user='backup',master_password='123456',
master_log_file='mysql-bin.000004',master_log_pos=312,master_port=3306;
start slave;
show slave status;
如果看到Waiting for master send event.. 什么的就成功了,你现在在主库上的修改,都会同步到从库上
需要的时候stop slave;
参考:
相关推荐
在Linux系统中,CentOS 7是一个非常流行的服务器操作系统,而MySQL 5.6则是一个广泛应用的关系型数据库管理系统。在没有网络的情况下,离线安装MySQL是必要的,这通常涉及到RPM包的处理。本篇文章将详细讲解如何在...
总结,CentOS 6.5上的一键安装MySQL 5.6涉及了系统更新、依赖安装、MySQL仓库配置、服务安装、配置优化以及安全设置等多个环节。每个步骤都需要仔细操作,确保系统的稳定性和数据库的安全性。通过这个过程,你不仅...
仅供学习使用,希望能对大家有所帮助,
在Linux系统中,CentOS 6是一个非常流行的发行版,而MySQL 5.6.x是其常用的关系型数据库管理系统。本教程将详细讲解如何在CentOS 6上安装MySQL 5.6.x版本,并涉及如何自定义安装路径,以满足特定的需求。 1. **准备...
文档包含mysql下载链接,包含mysql安装配置,初学者可立即入门安装,包含主从配置和双击互呗配置,全手动安装过程分享
CentOS 6 安装 MySQL 5.6 MySQL 是一个流行的开源关系数据库管理系统,广泛应用于 Web 应用程序中。 CentOS 6 是一个基于 Linux 的操作系统,本文将指导您如何在 CentOS 6 上安装 MySQL 5.6。 关闭 SELinux ...
### CentOS7 源码安装 MySQL 5.6 详细步骤及知识点解析 #### 一、准备工作:安装必要的依赖包 在正式安装 MySQL 5.6 之前,我们需要确保系统中已经安装了一些编译工具和其他必备组件。这些工具主要用于帮助我们...
CentOS5下安装Mysql5.6.txt
2. 卸载centos 7自带的MariaDB数据库(mysql的分支) a) rpm -qa | grep mariadb b) rpm -e --nodeps mariadb-libs-5.5.41-2.el7_0.x86_64 3. 安装mysql(如果安装过请卸载掉再安装) a) 解压安装包 双击wget ...
【MySQL主从复制详解】 MySQL主从复制是一种数据库高可用性的解决方案,允许数据在多个服务器之间实时同步。这种技术在大型分布式系统中尤其重要,它实现了读写分离,提高了系统的并发处理能力,同时也提供了数据...
安装步骤参考:https://blog.csdn.net/chkai123/article/details/126229727 docker离线安装 arm架构下离线安装docker docker centos7离线安装docekr 离线安装docker arm架构下安装docker arm架构centos7安装docker
在本教程中,我们将深入探讨如何在CentOS7操作系统上安装MySQL 5.7.19并设置主从复制配置。MySQL的主从复制是一种常用的技术,它允许数据从一个服务器(主服务器)同步到另一个服务器(从服务器),从而实现数据备份...
Linux环境基于CentOS7 搭建部署Docker容器
总结,"Centos6 64位一键傻瓜安装mysql5.6.xx"简化了在CentOS 6上部署MySQL的过程,特别是对于不熟悉Linux或MySQL管理的新手来说,这是一个非常实用的工具。然而,理解其工作原理和后续的维护步骤仍然是至关重要的,...
本文将详细介绍如何在CentOS 7环境下配置Docker的桥接网络,并实现容器与外部网络的有效通信。 #### 二、基础知识回顾 在深入了解CentOS 7下Docker桥接网络配置之前,我们先来回顾一些基础概念: 1. **Docker容器...
CentOS6.3源码安装mysql5.6方法.pdf
MySQL5.6 数据库主从同步安装与配置详解(Master/Slave) 本篇文章主要介绍了MySQL5.6 数据库主从同步安装与配置详解,具有一定的参考价值,有兴趣的可以了解一下。 安装环境 操作系统 :CentOS 6.5 数据库版本:...