关于学习MySQL的主从复制

学习记录关于mysql的数据库的一些东西

主从复制

前期的准备工作
两台虚拟机 我使用的系统是Ubuntu系统,IP地址这里设置为 2.2202.130,需要安装MySQL数据库,我选择的版本是mysql-server-8.0 在这里我使用的是.220作为主数据库的,.130作为从数据库的。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c38e1c8b36fb46c3ae34178fd7196d81.png
在这里插入图片描述

在这里插入图片描述

.220主数据库的配置

  • 主库的配置文件修改

接下来是对/etc/mysql/mysql.conf.d/目录下的配置文件的更改----->mysqld.cnf 在这个配置文件的最后第71-79行是进行备份重写和复制的配置。在这个配置文件中有明确的注释。

在这里插入图片描述
将配置文件中·#给删除,设置数据库id,设置日志的位置,还有存活时间,日志的大小,以及设置需要备份的数据库也可以全部数据库都进行备份。。都可以自己定义,需要保证数据库的 id是唯一的。

server-id = 1   这是MySQL服务器的唯一标识符,用于在复制环境中区分主服务器(master)和从服务器(slave)。每个服务器的server-id都必须是唯一的。

log_bin = /var/log/mysql/mysql-bin.log   这指定了二进制日志文件的存储位置。

binlog_expire_logs_seconds = 2592000    这设置了二进制日志文件的自动删除时间。在这个例子中,设置为2,592,000秒,即30天。超过
这个时间的日志文件会被自动删除,以节省磁盘空间。(可以根据自己的需求进行设置时间)

max_binlog_size = 100M                 这指定了单个二进制日志文件的最大大小。当日志文件达到这个大小时,MySQL会自动创建一个新
的日志文件。在这里,设置为100MB。

binlog_do_db = mk  这指定了哪些数据库的更改应该被记录在二进制日志中。在这里,只有名为mk的数据库的更改会被记录。这对于在复制环
境中只复制特定的数据库非常有用。

#binlog_ignore_db = include_database_name(填写数据库名)  这是一行被注释掉的配置。如果取消注释并替换include_database_name
为具体的数据库名,那么该数据库的更改将不会被记录在二进制日志中。这对于某些数据库的不进行复制就很有用。在这里的配置我是将他注释
掉的。
  • 创建从数据库登录账号
    在这点,需要进入mysql数据库,创建账户,赋予相应的权限的进行主从复制,在配置完成后记得重启数据库的。
CREATE USER '用户名'@'192.168.2.130' IDENTIFIED WITH mysql_native_password by '密码';
创建一个用户,让从库能够登录到主库当中,在这里的IP地址是从数据库的IP地址
GRANT Replication Slave ON *.* TO '用户名'@'192.168.2.130';
给创建的用户进行授权
flush privileges;
执行sql,刷新权限

.130从数据库的配置

  • 从数据库的配置文件更改
    更改的配置文件的路经和主数据库的配置文件的路径相同的。
    更改的配置
    在这里插入图片描述
  • mysql命令输入
    使用 CHANGE MASTER TO命令,这个是 MySQL 中用于配置主从复制(Master-Slave Replication)关系的 SQL 命令。这个命令允许从服务器(Slave)连接到主服务器(Master),同步数据用。通常用来初始化或者是重新配置复制设置。
    基本语法:
CHANGE MASTER TO
    MASTER_HOST = 'master_host',               主服务器的 IP 地址或主机名。
    MASTER_USER = 'replication_user',          用于连接主服务器的用户名,(就是在主库创建的从数据登录的账户)
    MASTER_PASSWORD = 'replication_password',  用于连接主服务器的用户名密码。
    MASTER_LOG_FILE = 'master_log_file',       主服务器的二进制日志文件名,在主服务器上执行 SHOW MASTER STATUS 可以找到这个文件名
    MASTER_LOG_POS = master_log_position;      二进制日志文件中的位置

在从库当中执行的SQL命令代码 :

CHANGE MASTER TO 
    master_host = '192.168.1.220',      -- 主数据库的 IP 地址
    master_port = 3306,                  -- 主数据库的端口号,默认为 3306
    master_user = '用户名',                -- 用于连接主数据库的用户名
    master_password = '密码',          -- 用于连接主数据库的密码
    master_log_file = 'mysql-bin.000001',-- 主数据库的二进制日志文件名。
    master_log_pos = 5915;               -- 二进制日志文件中的位置(偏移量)

使用命令start slave; 启动主从复制。
使用命令show slave status\G; 查看主从复制的状态,如果看见
Slave_IO_Running: Yes Slave_SQL_Running: Yes的情况表示主从复制成功的
在这里插入图片描述

验证检查

现在的话就可以在主数据创建一张表,在你选择的进行备份的那个数据库当中,创建一个新的表格,和填入数据,在从数据当中也会有这个表的数据。

SQL 表结构和数据插入:

-- 创建汽车表
CREATE TABLE cars (
    id INT AUTO_INCREMENT PRIMARY KEY,  -- 自动增长的唯一标识符
    brand VARCHAR(50),                  -- 汽车品牌
    model VARCHAR(50),                  -- 汽车型号
    year INT,                           -- 生产年份
    color VARCHAR(20),                  -- 颜色
    price DECIMAL(10, 2)                -- 价格
);

-- 插入五条数据
INSERT INTO cars (brand, model, year, color, price) VALUES
('Toyota', 'Camry', 2020, 'Black', 24000.00),
('Honda', 'Civic', 2021, 'Blue', 22000.00),
('Ford', 'Mustang', 2022, 'Red', 35000.00),
('BMW', '3 Series', 2019, 'White', 40000.00),
('Audi', 'A4', 2020, 'Silver', 38000.00);

表格内容:

idbrandmodelyearcolorprice
1ToyotaCamry2020Black24000.00
2HondaCivic2021Blue22000.00
3FordMustang2022Red35000.00
4BMW3 Series2019White40000.00
5AudiA42020Silver38000.00

这张表包含了每辆车的品牌(brand)、型号(model)、生产年份(year)、颜色(color)以及价格(price)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值