docker 安装mysql并进行主从配置

1:拉取镜像  docker pull  mysql:版本号

2:创建仓库和配置文件 mkdir mysql-data   vim my.cof

3:配置文件 master

[mysqld]

server-id=1

log-bin=master-bin 

skip-host-cache

skip-name-resolve

collation-server = utf8_unicode_ci

init-connect='SET NAMES utf8'

character-set-server = utf8

user=mysql

[mysql] 

default-character-set=utf8

[client] 

default-character-set=utf8

4:配置文件slave

   [mysqld]

server-id=2

log-bin=master-bin

skip-host-cache

skip-name-resolve

collation-server = utf8_unicode_ci

init-connect='SET NAMES utf8'

character-set-server = utf8

user=mysql

[mysql] 

default-character-set=utf8

[client] 

default-character-set=utf8

5:分别启动两个mysql实例

启动master实例:docker run -d --name mysql_master -p 3306:3306 -v 服务器配置路径:/etc/mysql/my.cnf -v 服务器data文件夹位置:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root的密码  mysql:5.7.6

启动slave实例:docker run -d --name mysql_slave -p 3306:3306 -v 服务器配置路径:/etc/mysql/my.cnf -v 服务器data文件夹位置:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root的密码  mysql:5.7.6 

6:进去主库

    6.1  登录  mysql -u root -p 

    6.2  添加slave访问主库的账号  create user 'salve'@'%' identified by '账号密码';

    6.3 给slave 权限 grant all privileges on *.* to 'slave'@'%' identified by '账号面' ;(这里可以根据实际情况给权限)

    6.4 查看master的File值和Postion值:show master status ;


7: 进入从库

    7.1  登录  mysql -u root -p 

    7.2  进行主从配置的master配置

change master to master_host='主服务器IP',master_port=主服务器MYSQL端口,master_user='用户名',master_password='密码',master_log_file='master的File值',master_log_pos=master的Postion值;

    7.3:启动slave:        start slave;

    7.4 查看 slave状态: show slave status \G; Slave_IO_Running和 Slave_SQL_Running 都为yes的时候配置成功


docker 安装mysql并进行主从配置_第1张图片

8:可能出现的问题 

  1: Slave_IO_Running 一直是connecting状态 

        解决方案:查看配置主数据库的时候,ip地址和账户密码是否填写正确

9:mysql 主从失败的时候可以选择跳过,

     SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 ;

你可能感兴趣的:(docker 安装mysql并进行主从配置)