mysql 8.0,docker配置主从节点记录

docker及docker-compose配置安装略…
docker-compose文件,安装mysql容器
version: '3'
services:
  mysql:
    image: "mysql:latest"
    container_name: mysql_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    ports: 
      - "3306:3306"
    volumes:
      - "~/dockerData/mysql/data:/var/lib/mysql"
      - "~/dockerData/mysql/conf:/etc/mysql/conf.d"
      - "~/dockerData/mysql/log:/var/log/mysql"
  • 在主机创建相应文件夹,将docker容器中MySQL的数据文件、配置文件、日志挂载到宿主机
  • “~/dockerData/mysql/data:/var/lib/mysql”
  • “~/dockerData/mysql/conf:/etc/mysql/conf.d”
  • “~/dockerData/mysql/log:/var/log/mysql”

配置两个虚拟机容器(注意两个容器挂载到本机的路径,不要冲突),并开启远程登录后(方便在mysql桌面软件上面查看和操作),可继续。

配置主从节点的大致步骤

  1. 主服务器开启binlog日志,配置主从节点内唯一的server_id,创建用于复制的账号并开启相应权限;
  2. 从服务器配置唯一的server_id,创建用于复制的账号并配置需要的权限,(测试时可用 root不需单独配置);
  3. 开始复制前,查看主服务器binlog日志信息;
  4. 如果开始复制前,主服务器已经有数据,则需要把创建数据快照或者直接导出数据文件;
  5. 在从服务器配置需要连接的主服务器的host、port、user、password、log信息;
  6. 开启从服务器复制。

主服务器配置

1、在主服务器的宿主机mysql/conf文件夹内创建配置文件,并开启相应配置。
vim my.cnf

my.cnf文件内容

[mysqld]
log-bin=mysql-bin //日志文件前缀 mysql-bin  可修改
server-id=1 //配置serverid

配置完成后,重启mysql容器

docker restart mysql_db
2、创建配置用于复制的账号
mysql> CREATE USER 'testslave'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT REPLICATION SLAVE ON *.* TO 'testslave'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

‘testslave’ 为创建的用户名,‘123456’为密码,创建完后可查看对应权限,
使用FLUSH PRIVILEGES刷新。

mysql> SHOW GRANTS FOR 'testslave'@'%';
+---------------------------------------------------------------------+
| Grants for testslave@%                                              |
+---------------------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO `testslave`@`%` WITH GRANT OPTION |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

3、查看主服务器的binlog信息
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000004 |     2891 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

File 指当前使用的log日志文件名
Position 当前日志的位置信息

以上两个信息都需要在配置从服务器的时候用到

从服务器配置

1、创建配置文件并开启相应配置

my.cnf
配置server-id为2,忽略部分表

[mysqld]
server-id=2
## 忽略表
replicate-wild-ignore-table=mysql.*
replicate-wild-ignore-table=sys.*
2、配置同步参数
CHANGE MASTER TO 
MASTER_HOST='192.168.43.130',
MASTER_PORT=3306,
MASTER_USER='slaveuser',
MASTER_PASSWORD='root',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=1071;
3、配置完成后,开启同步进程
mysql > START SLAVE;
4、检查状态
mysql > show slave status \G;
mysql> SHOW SLAVE STATUS \G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 192.168.43.130
                  Master_User: slaveuser
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
          Read_Master_Log_Pos: 1071
               Relay_Log_File: 2d1a999f20c2-relay-bin.000005
                Relay_Log_Pos: 326
        Relay_Master_Log_File: mysql-bin.000004
             Slave_IO_Running: Yes   //yes代表正常
            Slave_SQL_Running: Yes   //为yes代表正常   以上两处为yes则表示正常
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: mysql.*,sys.*
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0

参考文章:https://blog.csdn.net/agonie201218/article/details/121499881
mysql文档:https://dev.mysql.com/doc/refman/8.0/en/creating-accounts.html#creating-accounts-granting-privileges

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值