mysql 9比10大的问题_mysql 高级 9-主从复制

本文详细介绍了如何配置MySQL的主从复制,包括在Linux(CentOS7)主机和Windows从机上的步骤,涉及创建复制用户、设置二进制日志、更改配置文件、启动复制线程等关键操作。在配置过程中,强调了版本一致性、iptables设置、日志文件位置和权限的重要性,并提供了错误排查提示。
摘要由CSDN通过智能技术生成

参考

开发环境

第一台机器-Linux-主机名称

版本

CentOS7

CentOS-7-x86_64-DVD-2003.iso

Linux

3.10.0-1127.el7.x86_64

mysql

5.7.16

IP

192.168.241.128

第二台机器-Windows-从机名称

版本

操作系统

Windows 10 X64

mysql

8.0.11

IP

10.98.217.41

复制的基本原理

slave 会从 master 读取 binlog 来 进行数据同步。

2f62715c3ae44be34948f7c98e45b229.png

MySQL 复制过程分成三步:

1.master 将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events。

2.slave 将 master 的 binary log events 拷贝到它的中继日志(relay log);

3.slave 重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL 复制是异步的且串行化的。

3daccc81c458d1c68f45d4dd3918eb04.png

复制的基本原则

1.每个 slave 只有一个 master

2.每个 slave 只能有一个唯一的服务器 ID

3.每个 master 可以有多个 salve

复制的最大问题

延时

前提条件

(1)mysql 版本一致且后台以服务运行

(2)主从都配置在 [mysqld] 结点下,都是小写

(3)mysql 主从复制起始时,从机不继承主机数据

主机配置

1.修改主节点配置文件-my.cnf

vi /etc/my.cnf

[mysqld]

log-bin=mysql-bin

server-id=1

innodb-file-per-table=ON

skip_name_resolve=ON

2.重启 mysqlsystemctl restart mysqld.service

3.查看日志信息

(1)查看二进制日志是否开启

showglobalvariables like'%log%';

fa4e192c6a9caadbe45fda4b87284574.png

(2)查看主节点二进制日志列表

show master logs;

750926032fe9171880f66ef3b2698964.png

(3)查看主节点的 server id

showglobalvariables like'%server%';

29b8dcf6303d894db8765ae95d03b079.png

4.在主节点上创建有复制权限的用户#在主节点创建一个用户 luoma_slave,用于从节点链接主节点时使用,密码为 luoma123456

#%:表示任何机器,也可以指定为从机 IP

grant replication slave,replication client on*.*to'luoma_slave'@'%'identifiedby'luoma123456';

c16c8c20a29e5d82cba1402c527b0bd9.png

假如执行报下面的错误

>1064-Youhave an errorinyour SQL syntax;check the manual that corresponds to yourMySQLserver versionforthe right syntax tousenear'IDENTIFIED BY 'luoma123456''at line4

>时间:0.001s

这个错误的原因是 mysql8.0 以上版本不支持创建用户和授权同时进行。使用下面的 sql 创建

#在主节点创建一个用户 luoma_slave,用于从节点链接主节点时使用,密码为 luoma123456

CREATE USER'luoma_slave'@'%'IDENTIFIED WITH mysql_native_password BY'luoma123456';

#授权

#ON *.* db.table: 数据库和数据表

#TO user: 要授权的用户

#@ host: % 表示任何主机

GRANT REPLICATION SLAVE ON*.*TO'luoma_slave'@'%';

5.刷新flush privileges;

6.查询 master 的状态show master status;

记录下 File 和 Position 的值

File

Position

Binlog_Do_DB

Binlog_Ignore_DB

Executed_Gtid_Set

mysql-bin.000001

1503

.

703ac26f48fa629f2666dcb6579d08a7.png

记录下 File 和 Position 的值,从机配置会使用到。

主服务器配置完成

注意:确保主服务器的 iptables 没有阻断 3306 的访问端口。

从机配置

1.修改从节点配置文件-my.ini

D:\Program Files\mysql-8.0.11-winx64\my.ini

[mysqld]

server-id=2

log_bin=mysql-bin

2.重启 mysql 服务C:\Windows\system32>net stop mysql

MySQL服务正在停止.

MySQL服务已成功停止。

C:\Windows\system32>net start mysql

MySQL服务正在启动....

MySQL服务已经启动成功。

3.查看从节点日志信息

(1)查看中继日志是否开启

showglobalvariables like'%log%';

232bdd619f56509853da1e99a648a491.png

(2)查看 server 相关信息

showglobalvariables like'%server%';

4d4322affa6860582636552c9447edc5.png

4.在从节点配置访问主节点的参数信息

添加 主节点主机,访问主节点的用户名及密码,主节点二进制文件信息。

注意:主节点的二进制文件一定要是二进制列表中的最后一个二进制文件。

语法格式

CHANGE MASTER TO MASTER_HOST='主机 IP',

MASTER_USER='主节点创建的用户名',

MASTER_PASSWORD='主节点创建的密码',

MASTER_LOG_FILE='File 名字',

MASTER_LOG_POS=Position数字;CHANGE MASTER TO

MASTER_HOST='192.168.241.128',

MASTER_USER='luoma_slave',

MASTER_PASSWORD='luoma123456',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=1503;

5.查看从节点的状态信息SHOW SLAVE STATUS;

因为没有启动从节点的复制线程,IO线程 和 SQL 线程都为 NO

a20bc0b05a5b1e94845fa58630654d26.png

6.启动复制线程

START SLAVE 可以指定线程类型:IO_THREAD,SQL_THREAD, 如果不指定,则两个都启动。

#启动复制线程

start slave;

#立即生效

flush privileges;

#查看从节点的状态信息

SHOW SLAVE STATUS;

下面两个参数都是 Yes,则说明主从配置成功!

01d1223725d69584277d8f1849da4dfc.png

至此,mysql 的主从复制配置完成。

如果需要重新配置,需要先停止复制线程

stop slave;

配置完成之后再重新启动。

测试

1.主机创建数据库,创建表,添加记录mysql>create database luoma_test_1;

QueryOK,1row affected(0.05sec)

mysql>create table t1(idint,content varchar(100));

QueryOK,0rows affected(0.13sec)

mysql>insertintot1(id,content)values(1,'luoma1.1');

QueryOK,1row affected(0.05sec)

mysql>insertintot1(id,content)values(2,'luoma1.2');

QueryOK,1row affected(0.34sec)

mysql>select*fromt1;

d3272fa99377af852f857bc6f87c346e.png

2.重机刷新数据库

4ad83a4403ed0a8519e38325f1b7d8ec.pngselect*fromt1;

6f8667b9daeda8fe72ae06b043c37445.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值