• Mysql:主从集群配置


    我这里是去网易蜂巢取得镜像: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:

  • 相关阅读:
    MT【90】图论基础知识及相关例题
    MT【89】三棱锥的体积公式
    Qt之界面实现技巧
    QCompleter自动补全
    Qt之开机自启动
    Qt之日志输出文件
    相遇Qt5
    QT中的pro文件的编写
    qt下的跨目录多工程编译
    用QT打开网页
  • 原文地址:https://www.cnblogs.com/Miracle-boy/p/10602940.html
Copyright © 2020-2023  润新知