mysql主从搭建
1.1)打开主库二进制文件
开启二进制文件,主库的二进制文件默认是关闭的,需要手动打开
主机126.129
从机129.130
1.2)找到主机的/ect/my.cnf , 使用vim打开该文件
添加两个元素
重启数据库
保存退出后进入/var/lib/mysql/ 目录,应为修改了文件,然后在当前目录下输入数据库重启命令
[root@localhost mysql]# ls
aria_log.00000001 ibdata1 ib_logfile1 mysql performance_schema
aria_log_control ib_logfile0 jtdb mysql.sock
[root@localhost mysql]# systemctl restart mariadb #重启数据库命令
[root@localhost mysql]# ls
aria_log.00000001 ib_logfile0 mysql mysql.sock
aria_log_control ib_logfile1 mysql-bin.000001 performance_schema
ibdata1 jtdb mysql-bin.index
重启后ls刷一下会出现一个二进制日志文件以 mysql-bin开头,
设置从库126.130,还是相同的路径打开/etc/my.cnf,添加下面这两行代码,然后重启数据库
server-id=2
log-bin=mysql-bin
进入[root@localhost ~]# cd /var/lib/mysql/ 目录下查看是否有二进制文件
[root@localhost mysql]# ls
aria_log.00000001 ib_logfile0 mysql mysql.sock
aria_log_control ib_logfile1 mysql-bin.000001 performance_schema
ibdata1 jtdb mysql-bin.index
2)数据库主从搭建
检查主库状态 show master status;
- 实现数据库主从挂载 host/port/user/password/二进制日志/pos*/
-
CHANGE MASTER TO MASTER_HOST="192.168.126.129", MASTER_PORT=3306, MASTER_USER="root", MASTER_PASSWORD="root", MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=245; /*启动数据库主从服务*/ START SLAVE; /*检查数据库启动状态*/ SHOW SLAVE STATUS;
如果数据库出现问题则
-
关闭主从服务 检查报错状态
关闭主从服务 stop slave;
检查报错信息 根据报错修改记录 重新搭建主从关系
注意事项:
1,修改主库的数据,从库会跟着同步数据.
2,如果修改从库数据,则主从的关系将会终止
2.1)数据库读写分离和负载均衡
2个虚拟机,一读一写,如果再多的话,可能就是3台服务器读,一台服务器写
Mycat 中间件
支持前端作为MySQL通用代理
后端JDBC方式支持Oracle,DB2,SQL Server,mongodb,巨杉
基于心跳的自动故障切换,支持读写分离
支持MySQL Cluster,Galera,Percona,cluster集群
支持数据的多片自动路由与聚合
支持sum,count,max等常用的聚合函数,支持跨库分页
支持库内分表,支持单库内部任意join全局表,支持跨库2表join
基于caltlet的多表join
支持通过全局表,ER关系的分片策略,实现了高效的多表join查询
部署Mycat
解压:[root@localhost src]# tar -xvf Mycat-server-1.6.7.6-test-20201104174609-linux.tar.gz
Usage: ./mycat { console | start | stop | restart | status | dump }
./mycat start(启动)
./mycat status(状态)
cat mycat.pid (查看日志)
读写分离完成,修改了从库title信息,没有修改主体,可以看到title的不同
刷新了几次,确实有读写分离的的效果,主机可读可写,从机只能读
然后要数据的一致,删掉该记录,或者恢复到原数据都行