使用二进制日志文件位置的基本MySQL复制设置

MySQL Replication using Binary Log File Position 与 Global Transaction Identifiers(GTID) 不同,它使用二进制日志、中继日志和索引文件来跟踪主从数据库之间的事件进度。GTID 可以与二进制/中继日志一起使用,但是,从了解二进制日志文件位置开始是有益的。这里显示的是设置新的主服务器和从服务器的步骤,包括如何记录主日志位置以与从配置一起使用;导致主服务器和从服务器之间的数据一致。

使用二进制日志文件位置的基本MySQL复制设置

这是使用二进制日志文件位置的 MySQL 复制设置过程的概述。作为参考以下提供的配置步骤的简化指南:https://dev.mysql.com/doc/refman/5.7/en/replication-configuration.html

操作系统和 MySQL 版本

CentOS 7

MySQL 5.7

MySQL 定义

与 MySQL 复制一起使用的关键字/文件名

  • Master – 主数据库服务器数据从
  • 从站——一个或多个数据库服务器数据被复制到
  • 二进制日志文件——包含作为事件写入的数据库更新和更改
  • 中继日志文件——包含从主服务器的二进制日志读取并由从 I/O 线程写入的数据库事件
  • 索引文件——包含所有使用的二进制日志或中继日志文件的名称
  • 主日志信息文件——包含主配置信息,包括用户、主机、密码、日志文件、主日志位置。在奴隶上找到
  • 中继日志信息文件——包含复制状态信息。在奴隶上找到
  • 全局事务标识符(GTID) - 跟踪复制位置的替代方法,不需要在从属上启用二进制日志(不与二进制日志文件位置一起使用)

1.设置MySQL

最新的存储库(MySQL 8.1)包括以前版本的 MySQL。添加存储库后,使用 yum-config-manager 禁用 mysql80-community 并启用 mysql57-community;或直接编辑 /etc/yum.repos.d/mysql-community.repo。

  • 添加 MySQL Yum 存储库

shell> sudo rpm -Uvh mysql80-community-release-el7-1.noarch.rpm

  • 安装 MySQL 5.7

shell> sudo yum-config-manager --disable mysql80-community

shell> sudo yum-config-manager --enable mysql57-community

shell> sudo yum install mysql-community-server

shell> sudo systemctl start mysqld.service

  • 重置 MySQL 根密码

shell> sudo grep 'temporary password' /var/log/mysqld.log

shell> mysql -uroot -p

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

2.设置主服务器

  • 将以下内容添加到 /etc/my.cnf 的 [mysqld] 部分

[mysqld]

log-bin=mysql-bin

server-id=1

log-bin – 二进制日志文件名,默认存储在 MySQL 数据目录 /var/lib/mysql 中。

server-id=1 – 服务器的唯一标识符。如果未声明,则默认为 0。如果设置为 0,与从服务器的连接将被拒绝。

重启 MySQL

shell> sudo systemctl restart mysqld.service

  • 创建 MySQL 复制用户

mysql> CREATE USER 'replication'@'%.example.com' IDENTIFIED BY 'password';

mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%.example.com';

  • 记录从属配置的Master二进制日志位置

mysql> FLUSH TABLES WITH READ LOCK;

mysql> SHOW MASTER STATUS;

mysql> UNLOCK TABLES;

3.设置从服务器

  • 将以下内容添加到 /etc/my.cnf 的 [mysqld] 部分

[mysqld]

log-bin=mysql-bin

server-id=2

log-bin – 二进制日志文件名,默认存储在 MySQL 数据目录 /var/lib/mysql 中。

server-id=2 – 服务器的唯一标识符。如果未声明,则默认为 0。如果设置为 0,与从服务器的连接将被拒绝。

  • 使用步骤2c中记录的主服务器复制位置信息进行配置。

mysql> 将主控更改为

->   MASTER_HOST='master_host_name',

->   MASTER_USER='replication_user_name',

->   MASTER_PASSWORD='replication_password',

->   MASTER_LOG_FILE='recorded_log_file_name',

->   MASTER_LOG_POS=recorded_log_position;

  • 启动 Slave 复制进程并查看状态。

mysql> STOP SLAVE;

mysql> SHOW SLAVE STATUS\G;

结论

按照这些步骤,从服务器应该与主日志位置同步。这可以在 SHOW SLAVE STATUS\G 中读取;输出,这将在下一篇博文中讨论。此外,有关 MySQL Replication GTID 设置、变量配置和维护的更多信息将成为后续博客文章的主题。

文章链接: https://www.mfisp.com/10230.html

文章标题:使用二进制日志文件位置的基本MySQL复制设置

文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
IDC云库

如何优化工作负载的电源效率

2022-9-19 10:07:08

IDC云库

网络攻击的类型有哪些?

2022-9-19 10:31:08

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

梦飞科技 - 最新云主机促销服务器租用优惠