两种方式实现读写分离

基于以下原因,我们会用读写分离:

1.写时锁表,会影响读

2.读写的压力达到单台数据库极限,使用多台来分摊压力.

 主从参见:https://www.bilibili.com/video/BV1Q4411g7s1?from=search&seid=323994097297460924

 

以两种方式实现读写分离:

1.在项目代码中使用多数据源,指定当前请求线程使用的数据库进行读写分离.(缺点:当某台数据库宕机,无法检查)

2.使用mycat配置读写分离(优点多多)

参见:https://www.bilibili.com/video/BV1AJ411P7z6?p=9

 

一旦从库写入数据,与主库不一致,从库立即会停止Slave_SQL_Running, 

解决方法

1.主库 show master status 查看信息

2.从库 先 stop slave,再执行change master to master_host='192.168.88.200',master_user='root', master_password='918428',master_port=3306,master_log_file='mysql-bin主库的',master_log_pos=主库的;  最后start slave

注意如果从库数据跟主库已经不一致当主库插入的id在从库中存在时,那么从库会报错该从库会立即停止Slave_SQL_Running. 所以在出现问题后无比先保证数据一致然后再处理.

也可以这样: 在slave上 set gblbal sql_slave_skip_counter=1;  然后重启slave;

 

下面是mycat读写分离步骤:

一.安装mysql主从

1.删除原mysql的所有信息,并安装: rpm -qa | grep mysql;  rpm -e --nodeps mysql;  yum remove mysql*; yum remove mysql mysql-server mysql-libs compat-mysql5.1;  wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm;   rpm -Uvh mysql57-community-release-el6-9.noarch.rpm;  yum install mysql-community-server

2.检查是否成功; service mysqld start; service mysqld status;  

3.查看root 密码 grep 'temporary password' /var/log/mysqld.log, 登录后修改密码

3.1.为方便密码验证设置下: set global validate_password_policy=0  set global validate_password_length=6

----------------------------------------主从搭建---------------------------------------------

4.配置主节点

4.1 /etc/my.cf文件添加server-id=1; log-bin=/var/lib/mysql/mysql-bin;

 

5.配置从节点 (注意如果是从虚拟机克隆过来的,/var/lib/mysql/auto.cnf文件需要改为不同)

5.1 /etc/my.cf文件添加server-id=2; relay-log=/var/lib/mysql/relay-bin(指定同步过来的log位置)

5.2 重启后执行

1.建立和主节点联系 change master to master_host='192.168.17.201',master_user='root',master_password='918428',master_log_file='mysql-bin.000001', master_log_pos=0;

注意master_log_file和master_log_pos要根据主节点填写

2.开启slave:  登录mysql执行start slave;

-------------------------------------------------------------------------------------------------

 

4.mycat 下载 http://www.mycat.org.cn/

 

posted @ 2020-06-04 19:44  trump2  阅读(1310)  评论(0)    收藏  举报