Skip to content
Menu
(◍ ´꒳` ◍)

  • Blog
  • Front Page
(◍ ´꒳` ◍)

Docker复杂软件安装(mysql 主从复制)003

By erhu on 2023年9月22日2023年9月22日

报错

2023-09-22T05:49:12.046285Z 0 [Note] mysqld: Shutdown complete
2023-09-22 05:50:21+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.43-1.el7 started.
2023-09-22 05:50:21+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
command was: mysqld –verbose –help –log-bin-index=/tmp/tmp.MBBvnYM7zB
2023-09-22T05:50:21.709261Z 0 [ERROR] mysqld: option ‘–binlog-do-db’ requires an argument
2023-09-22T05:50:21.711322Z 0 [ERROR] Aborting
2023-09-22 05:50:32+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.43-1.el7 started.
2023-09-22 05:50:32+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
command was: mysqld –verbose –help –log-bin-index=/tmp/tmp.zVLiTI4q2X
2023-09-22T05:50:32.678798Z 0 [ERROR] mysqld: option ‘–binlog-do-db’ requires an argument
2023-09-22T05:50:32.680835Z 0 [ERROR] Aborting
2023-09-22 05:51:19+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.43-1.el7 started.
2023-09-22 05:51:19+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
command was: mysqld –verbose –help –log-bin-index=/tmp/tmp.hMqs0ePH2T
2023-09-22T05:51:19.377927Z 0 [ERROR] mysqld: option ‘–binlog-do-db’ requires an argument
2023-09-22T05:51:19.380048Z 0 [ERROR] Aborting
[root@VM-0-16-centos ~]# docker exec -it mysql-master /bin/bash
Error response from daemon: Container 45c7388bedfd2821d5e12d4fa422ce61f3a1443e9a2a4b58f22500fb8b76a364 is not running

这个是因为修改了MySQL配置文件导致的报错

这边

1、从容器中将配置文件复制到本地

docker cp 容器id:/etc/mysql/my.cnf /opt

2、在本地修改配置文件,并保存

使用命令:vi /opt/my.cnf

3、将更改后的配置文件复制到docker容器中

docker cp /opt/my.cnf 容器id:/etc/mysql

4、重启容器

docker restart 容器id

5、查看docker容器中启动的进程

docker ps -a

[root@VM-0-16-centos ~]# docker cp 45c7388bedfd:/etc/mysql/my.cnf /opt
Error response from daemon: lstat /var/lib/docker/overlay2/7fbfaa6439bc5d533a4634173be48e69e1c46b27382b1dcb966bc75823e439f5/merged/etc/mysql/my.cnf: no such file or directory

这边是因为/mysql/my.cnf 在同一个目录

45c7388bedfd mysql:5.7 “docker-entrypoint…” 2 days ago Exited (1) 2 minutes ago mysql-master
[root@VM-0-16-centos ~]# docker cp 45c7388bedfd:/etc/mysql/my.cnf /opt
Error response from daemon: lstat /var/lib/docker/overlay2/7fbfaa6439bc5d533a4634173be48e69e1c46b27382b1dcb966bc75823e439f5/merged/etc/mysql/my.cnf: no such file or directory
[root@VM-0-16-centos ~]# docker cp 45c7388bedfd:/etc/my.cnf /opt
[root@VM-0-16-centos ~]# vim /opt/my.cnf
[root@VM-0-16-centos ~]# docker cp /opt/my.cnf 45c7388bedfd:/etc/
[root@VM-0-16-centos ~]# docker restart 45c7388bedfd
45c7388bedfd
[root@VM-0-16-centos ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45c7388bedfd mysql:5.7 “docker-entrypoint…” 2 days ago Up 8 seconds 33060/tcp, 0.0.0.0:10050->3306/tcp mysql-master
[root@VM-0-16-centos ~]# docker exec -it mysql-master /bin/bash
bash-4.2#

这边就是写入数据库名称为MySQL就好了,不能写入同步所有库
后面我们,开始做

创建数据库同步账户
使用docker命令重新进入到Master容器内部:

docker exec -it mysql-master /bin/bash
1
在Master数据库创建数据同步用户,授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据。登录到mysql客户端:

mysql -uroot -p123456
1
创建用户并授权:

mysql> CREATE USER ‘slave’@’%’ IDENTIFIED BY ‘123456’;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘slave’@’%’;
Query OK, 0 rows affected (0.00 sec)
这两个MySQL语句用于创建一个名为 ”slave’@’%” 的用户,并为该用户授予复制权限和客户端复制权限。下面是对这两个语句的详细解释: 1. “创建用户’slave’@’%’,由’123456’标识; – ‘CREATE USER’: 这是一个MySQL的DDL(数据定义语言)语句,用于创建一个新用户。 – ”slave’@’%”: 这是用户的标识符,包括用户名 ”slave” 和允许访问MySQL服务器的主机 ”%”。”%” 表示任何主机,因此该用户可以从任何位置连接到MySQL服务器。 – ‘IDENTIFICATION BY ‘123456”: 这部分指定了用户的密码,这里的密码是 ”123456”’。用户将需要提供正确的密码才能进行连接。 总之,这个语句创建了一个名为 ”slave” 的 MySQL用户,该用户可以从任何主机连接到 MySQL服务器,使用密码 ”123456” 进行身份验证。 2. “将复制从属、复制客户端 *.* 授予为”从属“@”%“;” – ‘GRANT’: 这是一个MySQL权限授权语句,用于授予特定权限给一个或多个用户。 – ‘REPLICATION SLAVE’ 和 ‘REPLICATION CLIENT’: 这是要授予给用户的权限。’REPLICATION SLAVE’ 权限允许用户作为一个复制从属(replication slave)连接到主MySQL服务器,接收主服务器上的二进制日志并执行复制操作。’REPLICATION CLIENT’ 权限允许用户执行一些客户端复制操作,如查看复制状态和配置。 – ‘*.*’: 这部分指定了授予权限的数据库和表。’*.*’ 表示所有数据库和表,因此用户将拥有对所有数据库和表的复制权限和客户端复制权限。 – ‘TO ‘slave’@’%”: 这部分指定了要授予权限的用户和允许连接的主机。”slave’@’%” 表示我们要给之前创建的 ”slave” 用户授予权限,并允许该用户从任何主机连接。 总之,这个语句授予了 ”slave’@’%” 用户复制权限和客户端复制权限,使其能够作为一个复制从属连接到MySQL主服务器并执行复制操作。这通常用于设置MySQL复制,其中一个MySQL服务器充当主服务器,另一个MySQL服务器充当从属服务器,用于数据复制和备份。

Category: 鸿蒙

文章导航

Docker复杂软件安装(mysql 主从复制)
Docker复杂软件安装(mysql 主从复制)004

Related Posts

tomact迁移(安装)001

10月 4, 2023
Read More

硬件前端-海康威视摄像头

10月 7, 2023
Read More

鸿蒙13(资源组目录)

8月 24, 2021
Read More

发表回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

近期文章

  • 实施002
  • 实施SQL001
  • 泛微oa001-字段
  • 硬件前端-海康威视摄像头
  • 使用Docker搭建Weblogic服务001

近期评论

    归档

    • 2023年10月
    • 2023年9月
    • 2023年8月
    • 2023年5月
    • 2023年4月
    • 2023年3月
    • 2021年11月
    • 2021年10月
    • 2021年9月
    • 2021年8月
    • 2021年5月

    分类

    • C
    • docker
    • iptable
    • ISIS
    • java
    • k8s
    • liunx
    • OpenCV py
    • ospf
    • solr
    • zabbix
    • 劳动法
    • 周杰伦
    • 格林法则
    • 等保
    • 鸿蒙

    其他操作

    • 登录
    • 条目feed
    • 评论feed
    • WordPress.org
    ©2025 (◍ ´꒳` ◍) | WordPress Theme by Superb WordPress Themes