登录
首页 >  数据库 >  MySQL

MySQL 复制主副表的问题详解

来源:SegmentFault

时间:2023-01-18 19:37:32 134浏览 收藏

对于一个数据库开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《MySQL 复制主副表的问题详解》,主要介绍了MySQL,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

1 主机配置

主机的配置就三个步骤,比较容易:

1.1 授权给从机服务器

GRANT REPLICATION SLAVE ON *.* to 'rep1'@'10.3.50.27' identified by '123';
FLUSH PRIVILEGES;

这里表示配置从机登录用户名为 rep1密码为 123,并且必须从 10.3.50.27 这个地址登录,登录成功之后可以操作任意库中的任意表。其中,如果不需要限制登录地址,可以将 IP 地址更换为一个 %。

注意,在

MySQL8
里边,这块有一些变化。MySQL8 中用户创建和授权需要分开,不能像上面那样一步到位,具体方式如下:

CREATE USER `rep1`@`10.3.50.27` IDENTIFIED WITH caching_sha2_password BY 'javaboy.COM';

GRANT Replication Slave ON *.* TO `rep1`@`10.3.50.27`;

2. 修改主库配置文件

开启

binlog
,并设置
server-id
,每次修改配置文件后都要重启 MySQL 服务才会生效

开启 binlog 主要是修改 MySQL 的配置文件 mysqld.cnf,该文件在容器的

/etc/mysql/mysql.conf.d 

log-bin:同步的日志路径及文件名,一定注意这个目录要是 MySQL 有权限写入的(我这里是偷懒了,直接放在了下面那

个datadir
下面)。
binlog-do-db:要同步的数据库名,当从机连上主机后,只有这里配置的数据库才会被同步,其他的不会被同步。
server-id: MySQL
在主从环境下的唯一标志符,给个任意数字,注意不能和从机重复。
修改 binlog_format 的值为
STATEMENT
,这一点很关键。
配置完成后重启 MySQL 服务端:

docker restart mysql33061

image.png

再看一眼 binlog_format 设置成功没:
image.png

以上就是《MySQL 复制主副表的问题详解》的详细内容,更多关于mysql的资料请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>