我这里是去网易蜂巢取得镜像:https://c.163yun.com/hub#/m/home/

命令:docker pull hub.c.163.com/library/mysql:latest

拉取完之后查询镜像

命令:docker images

3.配置主从复制

(1)创建配置文件

目录:/usr/local/mysql/   注意:目录你个人设定,这不过是我自己的爱好

主数据库(master)配置文件/usr/local/mysql/master/my.cnf:

[mysqld]

log-bin=mysql-bin

server-id=1     #注意这个id>0且要唯一

从数据库(slave)配置文件/usr/local/mysql/slave/my.cnf:

[mysqld]

log-bin=mysql-bin

server-id=2     #注意这个id>0且要唯一

注意:我是在容器外部进行的配置,喜欢进入容器内部配置的请稍等。

(2)开启主从数据库

开启主数据库:

开启从数据库:

查看容器状态:

在这里,容器就正常打开了。

喜欢进入容器内部修改配置文件的注意了:

进入主数据库命令:docker exec -it mysql /bin/bash

修改my.cnf配置文件命令:vi /etc/mysql/my.cnf

oh my 上帝!里面的vi、vim命令都不能用!!!

上天难不倒有心之人,我装一个vim(实话说,vi是怎么装怎么失败,vim偶尔成功,但老子用的是集群啊,对,每一个容器都得装一遍vim,so,我启用外部的配置文件)

命令:apt-get update

命令:apt-get install vim

(这一次神奇的装成功了)

照着上边修改配置文件修改下my.cnf就可以了。

命令:vim /etc/mysql/my.cnf

配置成功的同学,保存,重启容器,照此再配置从服务器。

(3)重中之重的主从配置环节

---------------------------------------------------------------------------------------------------------------------------------master数据库配置-----------------------------------------------------------------------------------------------------------------------

master数据库创建授权用户:

grant all privileges on *.* to 'username'@'ip' identified by 'password' with grant option;

flush privileges;

%是统配字符,表示所有ip都可以连接,这个ip主要是从数据库的ip

喜欢进入容器内部进行黑窗操作的同学请不要介意,我是喜欢这样用客户端哈哈。

查询用户,host:select user,host from mysql.user;

查看master状态:show master status;

主数据库的配置环节到此就完成了。

---------------------------------------------------------------------------------------------------------------------------------slave数据库配置-----------------------------------------------------------------------------------------------------------------------

停止slave:stop slave;

配置连接master数据库:

change master to master_host=’ip’, master_user=’username’, master_password=’password’, master_log_file=’log_file_name’;

开启slave:start slave;

查询slave状态:show slave status;

当你的Slave_IO_State也是这样就完成了。

但是可惜的是,如果你不知道这个细节,你永远是完不成的。

注意:上面填写的ip,一定一定是docker容器的ip,而不是虚拟机的ip。

docker inspect -f='{{.Name}} {{.NetworkSettings.IPAddress}} {{.HostConfig.PortBindings}}' $(docker ps -aq) 获取所有容器ip

来查看下,docker容器的ip:

最新文章

  1. HTMl链接- target/ name
  2. Mono自定义图片按钮
  3. Android java传递int类型数据给C
  4. LazyLoad.js及scrollLoading.js
  5. IBM X3650 M4服务器安装centos找不到硬盘的解决方法
  6. 安装nginx python uwsgi环境 以及模拟测试
  7. 关于HttpWebRequest.KeepAlive
  8. ORACLE EXPDP命令使用详细【转】
  9. svn访问权限控制
  10. C# 控制台程序设置字体颜色
  11. jquery工具
  12. 超详细SDK Hello World
  13. 让UIAlertController兼容的同时iphone和ipad
  14. bzoj 3242: [Noi2013]快餐店
  15. supervisor进程管理工具的使用
  16. ES5-ES6-ES7_集合Set和Map
  17. linux服务器进程信息查看命令
  18. centos7-vmware克隆后的配置
  19. Java程序员须知的七个日志管理工具
  20. Vim简本

热门文章

  1. DIV+CSS IE6/IE7/IE8/FF兼容问题大全
  2. Codeforces 432D Prefixes and Suffixes:KMP + dp
  3. User Agent注入攻击及防御
  4. runtime error 的原因
  5. Android 之 Matrix(转)
  6. Apache配置负载均衡-实例
  7. leetcode 258. Add Digits(数论)
  8. (转)#ifndef的用法
  9. HasnMap的一种遍历方式:Map.Entry 和 Map.entrySet()
  10. cocos2dx & cocostudio 实现模态对话框