MySQL 优化学习7 --读写分离&分库分表?

主要分两部分讲解

  1. 如何配置MySql主从
  2. 项目搭建和测试截图,源代码见:https://github.com/doctording/springboot-mybatis-master-slave

MySQL 主从配置

这部分主要参考:

https://www.cnblogs.com/ruofengzhishang/p/5477502.html

https://blog.csdn.net/lc0817/article/details/51163268

实践环境

  • 两台ubuntu虚拟机 都是如下配置
mubi@v1:/etc/mysql$ uname -a
Linux v1 4.4.0-124-generic #148-Ubuntu SMP Wed May 2 13:00:18 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
mubi@v1:/etc/mysql$ mysql --version
mysql  Ver 14.14 Distrib 5.7.23, for Linux (x86_64) using  EditLine wrapper
mubi@v1:/etc/mysql$ 
虚拟机hostname ip mysql 端口 用户名 密码 主从
v1 172.16.227.243 3306 root 123456
v2 172.16.227.129 3306 root 123456
  • 让其它机器可以远程访问

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 修改配置(注意不同的linux/mac系统配置文件路径可能不一样)

注释调如下都

#bind-address		= 127.0.0.1 

两台机器分别添加如下两句话

#v1
[mysqld]
log-bin=mysql-bin
server-id=1

#v2
[mysqld]
log-bin=mysql-bin
server-id=2

然后service mysql restart重启

  • 配置主从

master
MySQL 优化学习7 --读写分离&分库分表?_第1张图片

slave

进入v2的mysql执行如下语句,注意是与上方对应的

change master to master_host='172.16.227.243', master_user='root', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=599;

MySQL 优化学习7 --读写分离&分库分表?_第2张图片


之后在 v1 新建数据库,数据表都能同步到v2

create table test;

 CREATE TABLE `t_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) DEFAULT NULL,
  `email` varchar(30) DEFAULT NULL,
  `password` varchar(32) DEFAULT NULL,
  `status` tinyint(1) DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 

SpringBoot MyBatis 主从项目配置

  • idea
  • gradle
  • jdk 1.8

写操作

MySQL 优化学习7 --读写分离&分库分表?_第3张图片

读操作和slave数据库数据查看
MySQL 优化学习7 --读写分离&分库分表?_第4张图片

MySQL 优化学习7 --读写分离&分库分表?_第5张图片

你可能感兴趣的:(MySQL 优化学习7 --读写分离&分库分表?)