Mysql的主从复制和读写分离(中间件Mycal版)

Mysql的主从复制和读写分离

主从复制

1,修改mysql的配置文件
[root@localhost mysql]#vim /etc/my.cnf
2.分别在配置文件中加入如下配置

		server-id=1
		log-bin=mysql-bin #开启二进制日志文件的名字
		log-slave-updates #从机随着日志文件的变化而变化 
		slave-skip-errors=all #跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断
		
		server-id=2
		log-bin=mysql-bin
		log-slave-updates
		slave-skip-errors=all
		
		···
		注意:两个机器的server-id不能一致,自己选择哪个为主那些为从

3.重启mysql服务
systemctl restart mysqld
4.登录mysql执行如下命令检测配置是否生效
SHOW VARIABLES like 'server_id';
在这里插入图片描述

5.登录master节点执行如下命令
show master status;
在这里插入图片描述

6.登录从节点执行如下命令:每个从都要执行使得从机与主机日志保持一致

change master to 
		master_host='192.168.150.128',
		master_user='root',
		master_password='root',
		master_log_file='mysql-bin.000001',
		master_log_pos=120;

7.开启从节点
start slave;

8.查看从节点状态
show master status\G;

	************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.15.0.9
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 120
               Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 283
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
   	
    注意:
    		1.出现 Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 说名成功,
    		2.如果在搭建过程出现错误,可以查看查看错误日志文件 cat /var/log/mysqld.log

9.通过客户端工具进行测试

10.关闭主从复制(在从节点执行),如果不手动关闭的话,便会一直保持!
stop slave;

读写分离《中间件Mycal》

1.下载mycat
http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

2.解压mycat
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

注意:以下这些配置只在写节点配置就行
3.配置mycat中conf下的配置schema.xml

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

         <!-- 定义MyCat的逻辑库 name是自定义的mycat逻辑库名 dataNode 定义数据节点,对应下一行的name -->
    <schema name="mycat" checkSQLschema="false" sqlMaxLimit="100" dataNode="dataNode"></schema>
        <!-- 定义MyCat的数据节点 database配置你的真实数据库名 -->
    <dataNode name="dataNode" dataHost="dtHost" database="project" />
   <dataHost name="dtHost" maxCon="1000" minCon="10" balance="1"
                writeType="0" dbType="mysql" dbDriver="native" switchType="-1"  slaveThreshold="100">
                <!--维持心跳-->
                <heartbeat>select user()</heartbeat>
                <!--写节点-->
                         <writeHost host="hostM1" url="10.10.0.151:3306" user="root"  password="root">
                <!--从节点-->
                         <readHost host="hostS1" url="10.10.0.152:3306" user="root" password="root" />
                </writeHost>
   </dataHost>
</mycat:schema>

4,配置登陆mycat的权限server.xml 逻辑库名一定要和schema.xml的一致

<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">        
          		<system>
                <!-- 这里配置的都是一些系统属性,可以自己查看mycat文献参考-->
                <property name="defaultSqlParser">druidparser</property>
                <property name="charset">utf8</property>
                </system>
              
                <!--配置mycat的用户信息-->
                <user name="root">
                <property name="password">root</property>
                        <!-- 配置逻辑库名  -->
                <property name="mycat">mycat</property>
                </user> 
</mycat:server> 

5,因为mycat默认的启动时间为5s,超时即失败。因此我们要自己设置它的启动等待时间 !进入 wrapper.xml文件进行配置,在任意位置添加即可。
wrapper.startup.timeout=7200 以秒为单位,7200秒=2小时

6 启动Mycal
./bin/mycat console./bin/mycat start

7.查看日志
tail -f ../logs/mycat.log

8.数据库连接配置,测试
用navicat(大黄) 连接MyCal 端口默认为8066

如果要和SpringBoot 集成的话在 yml 上配置

     #配置数据源(读写分离数据源)
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://192.168.150.128:8066/mycat          #连接mycat逻辑库
    username: root
    password: root
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL主从读写分离部署是一种常见的数据库架构,它可以提高系统的性能和可用性。在这种架构中,有一个主数据库(Master)用于处理写操作,而多个从数据库(Slaves)用于处理读操作。 以下是MySQL主从读写分离部署的一般步骤: 1. 安装MySQL:在主服务器和从服务器上安装MySQL数据库软件。 2. 配置主服务器:在主服务器上进行以下配置操作: - 在my.cnf配置文件中启用二进制日志(binary log)功能,并设置一个唯一的服务器ID。 - 创建一个用于复制的账户,并授予该账户复制权限。 3. 配置从服务器:在每个从服务器上进行以下配置操作: - 在my.cnf配置文件中设置一个唯一的服务器ID。 - 配置从服务器连接到主服务器的信息,包括主服务器的IP地址、复制账户的用户名和密码。 4. 启动复制:在从服务器上启动复制进程,使其连接到主服务器并开始复制数据。 5. 验证复制:确认从服务器已经成功连接到主服务器并开始复制数据。可以通过查看主从服务器的状态信息来验证复制是否正常运行。 6. 读写分离配置:在应用程序中配置读写分离,使读操作通过从服务器处理,写操作通过主服务器处理。可以使用中间件或代理来实现读写分离,例如MySQL Proxy、MySQL Router或HAProxy。 7. 监控和维护:定期监控主从服务器的状态,确保复制正常运行。如果主服务器发生故障,可以手动将其中一个从服务器提升为新的主服务器。 需要注意的是,MySQL主从复制并不能实时同步数据,而是异步复制。因此,主从复制在高并发写入场景下可能存在一定的延迟。此外,主从复制也需要考虑数据一致性和容灾备份等问题。在部署过程中,建议参考MySQL官方文档和相关资料,并根据实际情况进行配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值