全栈小白
2023-01-08 11:08:34
MySQL主从复制搭建
原创声明:本人所发内容及涉及源码,均为亲手所撸,如总结内容有误,欢迎指出
一、MySQL主从复制搭建
1.1 机器与环境准备
准备两台centos机器,配置两张网卡,分别配置网络,ip为10.10.10.10、10.10.10.20
如下,将网卡连接至VMnet0,虚拟机即可上网
真实机vmnet1配置
虚拟网络编辑器配置
虚拟机网卡配置(以10.10.10.10为例,20类似)
两台机器
设置Vmnet1网卡,让其真实机能与虚拟机通信
注:整合数据源在真实机操作,所以只需要真实机能与虚拟机ping通即可,如果让虚拟机与真实机ping通,需要开放入栈防火墙
1.2 安装MySQL
采用yum的方式安装(需要网)
-
下载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
-
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
-
开始安装
# 根据网络情况下载…… yum install mysql-community-server
-
找到密码,登录MySQL服务
# 启动MySQL服务,找到密码 systemctl start mysqld grep 'temporary password' /var/log/mysqld.log # 正常登陆即可 mysql -u root -p
-
重置密码,开启远程连接用户
# 登陆MySQL后,重置密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'P@ssw0rd'; # 开启远程连接用户,并刷新 alter user set host = '%' where user = 'root'; flush privileges;
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状态
创建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;
两处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');
登录从库,查看数据,数据已经同步至从库
评论

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日