全栈小白的gravatar头像
全栈小白 2023-01-08 11:08:34
MySQL主从复制搭建

原创声明:本人所发内容及涉及源码,均为亲手所撸,如总结内容有误,欢迎指出

一、MySQL主从复制搭建

1.1 机器与环境准备

准备两台centos机器,配置两张网卡,分别配置网络,ip为10.10.10.10、10.10.10.20

如下,将网卡连接至VMnet0,虚拟机即可上网

MySQL主从复制搭建

真实机vmnet1配置

MySQL主从复制搭建

虚拟网络编辑器配置

MySQL主从复制搭建

虚拟机网卡配置(以10.10.10.10为例,20类似)

MySQL主从复制搭建

两台机器

MySQL主从复制搭建MySQL主从复制搭建

设置Vmnet1网卡,让其真实机能与虚拟机通信

MySQL主从复制搭建

注:整合数据源在真实机操作,所以只需要真实机能与虚拟机ping通即可,如果让虚拟机与真实机ping通,需要开放入栈防火墙

1.2 安装MySQL

采用yum的方式安装(需要网)

  1. 下载MySQL的yum源,安装yum源的rpm包

    wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    # 下载路径:https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    # 安装yum源
    rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
  2. yum源默认安装8.0的MySQL,修改为5.7的版本

    # 编辑文件:
    vim /etc/yum.repos.d/mysql-community.repo
    # 将80的MySQL得enable设置为0,将57的MySQL得enable设置为1
    # 搞定后通过如下命令,查看MySQL的默认安装版本
    yum repolist enabled | grep mysql
  3. 开始安装

    # 根据网络情况下载……
    yum install mysql-community-server
  4. 找到密码,登录MySQL服务

    # 启动MySQL服务,找到密码
    systemctl start mysqld
    grep 'temporary password' /var/log/mysqld.log
    # 正常登陆即可
    mysql -u root -p
  5. 重置密码,开启远程连接用户

    # 登陆MySQL后,重置密码
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'P@ssw0rd';
    # 开启远程连接用户,并刷新
    alter user set host = '%' where user = 'root';
    flush privileges;

MySQL主从复制搭建

1.3 搭建主从复制

1.3.1 master

修改mysql配置文件

vim /etc/my.cnf
#mysql 服务ID,保证整个集群环境中唯一
server-id=1#mysql binlog 日志的存储路径和文件名
log-bin=/var/lib/mysql/mysqlbin#是否只读,1 代表只读, 0 代表读写
read-only=0#忽略的数据, 指不需要同步的数据库
binlog-ignore-db=mysql

重启服务

systemctl restart mysqld

连接MySQL,查看master状态

MySQL主从复制搭建

创建master用户

grant replication slave on *.* to 'master'@'10.10.10.20' identified by '@Aa1234567890';
flush privileges;

1.3.2 slave

修改mysql配置文件

#mysql服务端ID,唯一
server-id=2#指定binlog日志
log-bin=/var/lib/mysql/mysqlbin
# 除超级用户root、及线程用户外,其余用户均只读
read-only

重启服务

systemctl restart mysqld

连接MySQL,指定当前从库对应的主库的IP地址,用户名,密码,从哪个日志文件开始的那个位置开始同步推送日志。

change master to master_host='10.10.10.10', master_user='master', master_password='@Aa1234567890', master_log_file='mysqlbin.000001', master_log_pos=154;

开始同步

start slave;
​
show slave status\G;

MySQL主从复制搭建

两处yes即为正常

1.3.3 验证主从

在主库创建database为spring-boot-dynamic-datasource-demo的数据库,创建表结构t_user

create database `spring-boot-dynamic-datasource-demo` character set 'utf8mb4';
use spring-boot-dynamic-datasource-demo;
create table t_user(
    id int primary key auto_increment comment 'id',
    user_name varchar(50) comment '用户名'
) comment '用户表';
insert into t_user values (1, 'admin');

登录从库,查看数据,数据已经同步至从库

MySQL主从复制搭建

 


打赏

已有1人打赏

最代码官方的gravatar头像
最近浏览
wanxiaoqiao52866414  LV1 2024年7月1日
菜鸟蛋  LV2 2024年5月23日
stedian  LV4 2023年12月20日
damowang0022 2023年8月18日
暂无贡献等级
pgl2023 2023年3月17日
暂无贡献等级
悟道子  LV16 2023年3月1日
晴风8815  LV2 2023年2月28日
lcy111  LV5 2023年2月28日
微信网友_6368711690080256  LV3 2023年2月28日
80730176  LV7 2023年2月27日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友