全栈小白的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头像
最近浏览
stedian  LV4 2023年12月20日
damowang0022 2023年8月18日
暂无贡献等级
pgl2023 2023年3月17日
暂无贡献等级
fengzf  LV16 2023年3月1日
晴风8815  LV2 2023年2月28日
lcy111  LV5 2023年2月28日
微信网友_6368711690080256  LV3 2023年2月28日
80730176  LV7 2023年2月27日
Uting  LV3 2023年2月21日
kuan123  LV1 2023年2月15日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友