当前位置: 首页 > article >正文

redis中,msyql数据库读写分离搭建

一.mysql读写分离:缓解主服务器的压力

	1.概念:主服务器写数据,从服务器读数据
	2.实现方法:
		客户端分离: 开发手动分离地址
		服务端分离: 数据库与应用之间加一个中间件,分离读写请求
			    mysql-proxy,mysql-route,maxscale
			    amoeba,cobar,mycat2
			    atlas,kingshard,vitees
	3.mycat配置方法:
		冷配置:直接改配置文件
		热配置:命令配置
	    
	4.操作步骤
		
		主从-->users-->datasources-->cluster-->主备配置读写分离-->shecma配置逻辑库
		1.搭建主从服务器56,57
			
		2.安装授权mycat,安装mysql(原型库,存储mycat运行的数据)
		 mycat2-1.21-release-jar-with-dependencies.jar :运行依赖包
		 mycat2-install-template-1.21.zip:软件包

		 yum -y install java-1.8.0-openjdk.x86_64
		 cp mycat2-1.21-release-jar-with-dependencies.jar  /usr/local/mycat/lib/
		
		 chmod +x /usr/local/mycat/bin/*
		 chmod -R 777 /usr/local/mycat
		3.定义客户端连接mycat服务使用的用户及密码
			/usr/local/mycat/conf/users/root.user.json
			{
		        "dialect":"mysql",
		        "ip":null,
		        "password":"654321", 密码
		        "transactionType":"proxy",
		        "username":"mycat" 用户名
			}

		4.配置本机用户和datasources数据源地址,mycat机器的mysql创建plj用户并授权
			/usr/local/mycat/conf/datasources/prototypeDs.data
			{
		       ....
		        "password":"123456", 密码
		        "type":"JDBC",
		       	....
		        "user":"plj", 用户名
		        "weight":0
			}
			----
			mysql> create user plj@"%" identified by "123456";  //创建plj用户
			mysql> grant all on *.* to plj@"%" ;   //授予权限
		
		5.启动mycat服务并登录(8066)
			/usr/lcoal/mycat/bin/mycat start

			mysql -h127.0.0.1 -P8066 -umycat -p654321

		6.mycat下,配置主从的用户数据源地址,mysql56,主机器上创建主从数据源的用户并授权

			/*+ mycat: createdatasource{
			"name":"whost56", #master角色主机名
			"url":"jdbc:mysql://192.168.88.56:3306",
			"user":"plja",
			"password":"123456"
			} */;
		
			/*+ mycat: createdatasource{
			"name":"rhost57", #slave角色主机名
			"url":"jdbc:mysql://192.168.88.57:3306",
			"user":"plja",
			"password":"123456"
			} */;
			----
			mysql> create user plja@"%" identified by "123456";  //创建plj用户
			mysql> grant all on *.* to plja@"%" ;   //授予权限

		热配置,用户/数据源/集群/逻辑库相关命令

		/*+ mycat: showusers{} / showdatasources{} / showschemas{} */;

		/*+ mycat: createuser{"name":"xx","password":"xx"...} / createdatasource{"name":"xx"}  / createschema{"name":"xx"}*/;

	 	/*+ mycat: dropuser{"name":"xx"} /dropdatasource{"name":"xx"} /dropschema{"name":"xx"}*/;
		
		---集群
		/*+ mycat: showclusters{} */;
		/*! mycat: createcluster{"name":"xx"...} */;
		/*! mycat: dropcluster{"name":"xx"...} */;

	
		7.mycat下,主从服务器加入集群
			mysql -h127.0.0.1 -P8066 -umycat -p654321

			/*! mycat:createcluster{
			"name":"rwcluster",
			"masters":["whost56"], #master角色主机名
			"replicas":["rhost57"] #slave角色主机名
			}*/ ;
			

		8.调整配置文件修改主从的读写操作(之前配置的name=这里的配置文件名称)
			vim /usr/local/mycat/conf/datasources/whost56.datasource.json
				"instanceType":"WRITE"  #分配写
			vim /usr/local/mycat/conf/datasources/rhost57.datasource.json 
				"instanceType":"READ"   #分配读
			vim /usr/local/mycat/conf/clusters/rwcluster.cluster.json 
				"instanceType":"BALANCE_ALL_READ" 

			BALANCE_ALL:获取集群中所有数据源
			BALANCE_ALL_READ:读请求都会被均衡地分配到所有的从库
			BALANCE_READ_WRITE:获取集群中允许读写的数据,单允许读的数据优先
			BALANCE_NONE:获取集群中允许写的数据
	
			重启服务 /usr/local/mycat/bin/mycat restart

		9.登录mycat,创建testdb库,生成testdb.schema.json文件,修改配置文件,逻辑库关联集群真实库
			mysql -h127.0.0.1 -P8066 -umycat -p654321
			create database testdb;

			vim /usr/local/mycat/conf/schemas/testdb.schema.json
			       "schemaName":"testdb",
        			"targetName":"rwcluster", #集群名称

		10.登录mycat,创建表,写记录测试,完成数据的读写分离
			mysql -h127.0.0.1 -P8066 -umycat -p654321
			create table testdb.user(name char(10),password char(10));
			insert into  testdb.user values("yaya","123456");

2.mysql读写分离:缓解主服务器的压力

    1.概念:主服务器写数据,从服务器读数据
    2.实现方法:
        客户端分离: 开发手动分离地址
        服务端分离: 数据库与应用之间加一个中间件,分离读写请求
                mysql-proxy,mysql-route,maxscale
                amoeba,cobar,mycat2
                atlas,kingshard,vitees
    3.mycat配置方法:
        冷配置:直接改配置文件
        热配置:命令配置
        
    4.操作步骤
        
        主从-->users-->datasources-->cluster-->主备配置读写分离-->shecma配置逻辑库
        1.搭建主从服务器56,57
            
        2.安装授权mycat,安装mysql(原型库,存储mycat运行的数据)
         mycat2-1.21-release-jar-with-dependencies.jar :运行依赖包
         mycat2-install-template-1.21.zip:软件包

         yum -y install java-1.8.0-openjdk.x86_64
         cp mycat2-1.21-release-jar-with-dependencies.jar  /usr/local/mycat/lib/
        
         chmod +x /usr/local/mycat/bin/*
         chmod -R 777 /usr/local/mycat
        3.定义客户端连接mycat服务使用的用户及密码
            /usr/local/mycat/conf/users/root.user.json
            {
                "dialect":"mysql",
                "ip":null,
                "password":"654321", 密码
                "transactionType":"proxy",
                "username":"mycat" 用户名
            }

        4.配置本机用户和datasources数据源地址,mycat机器的mysql创建plj用户并授权
            /usr/local/mycat/conf/datasources/prototypeDs.data
            {
               ....
                "password":"123456", 密码
                "type":"JDBC",
                   ....
                "user":"plj", 用户名
                "weight":0
            }
            ----
            mysql> create user plj@"%" identified by "123456";  //创建plj用户
            mysql> grant all on *.* to plj@"%" ;   //授予权限
        
        5.启动mycat服务并登录(8066)
            /usr/lcoal/mycat/bin/mycat start

            mysql -h127.0.0.1 -P8066 -umycat -p654321

        6.mycat下,配置主从的用户数据源地址,mysql56,主机器上创建主从数据源的用户并授权

            /*+ mycat: createdatasource{
            "name":"whost56", #master角色主机名
            "url":"jdbc:mysql://192.168.88.56:3306",
            "user":"plja",
            "password":"123456"
            } */;
        
            /*+ mycat: createdatasource{
            "name":"rhost57", #slave角色主机名
            "url":"jdbc:mysql://192.168.88.57:3306",
            "user":"plja",
            "password":"123456"
            } */;
            ----
            mysql> create user plja@"%" identified by "123456";  //创建plj用户
            mysql> grant all on *.* to plja@"%" ;   //授予权限

        热配置,用户/数据源/集群/逻辑库相关命令

        /*+ mycat: showusers{} / showdatasources{} / showschemas{} */;

        /*+ mycat: createuser{"name":"xx","password":"xx"...} / createdatasource{"name":"xx"}  / createschema{"name":"xx"}*/;

         /*+ mycat: dropuser{"name":"xx"} /dropdatasource{"name":"xx"} /dropschema{"name":"xx"}*/;
        
        ---集群
        /*+ mycat: showclusters{} */;
        /*! mycat: createcluster{"name":"xx"...} */;
        /*! mycat: dropcluster{"name":"xx"...} */;

    
        7.mycat下,主从服务器加入集群
            mysql -h127.0.0.1 -P8066 -umycat -p654321

            /*! mycat:createcluster{
            "name":"rwcluster",
            "masters":["whost56"], #master角色主机名
            "replicas":["rhost57"] #slave角色主机名
            }*/ ;
            

        8.调整配置文件修改主从的读写操作(之前配置的name=这里的配置文件名称)
            vim /usr/local/mycat/conf/datasources/whost56.datasource.json
                "instanceType":"WRITE"  #分配写
            vim /usr/local/mycat/conf/datasources/rhost57.datasource.json 
                "instanceType":"READ"   #分配读
            vim /usr/local/mycat/conf/clusters/rwcluster.cluster.json 
                "instanceType":"BALANCE_ALL_READ" 

            BALANCE_ALL:获取集群中所有数据源
            BALANCE_ALL_READ:读请求都会被均衡地分配到所有的从库
            BALANCE_READ_WRITE:获取集群中允许读写的数据,单允许读的数据优先
            BALANCE_NONE:获取集群中允许写的数据
    
            重启服务 /usr/local/mycat/bin/mycat restart

        9.登录mycat,创建testdb库,生成testdb.schema.json文件,修改配置文件,逻辑库关联集群真实库
            mysql -h127.0.0.1 -P8066 -umycat -p654321
            create database testdb;

            vim /usr/local/mycat/conf/schemas/testdb.schema.json
                   "schemaName":"testdb",
                    "targetName":"rwcluster", #集群名称

        10.登录mycat,创建表,写记录测试,完成数据的读写分离
            mysql -h127.0.0.1 -P8066 -umycat -p654321
            create table testdb.user(name char(10),password char(10));
            insert into  testdb.user values("yaya","123456");
 


http://www.kler.cn/a/455667.html

相关文章:

  • Ftrans数据摆渡系统 搭建安全便捷跨网文件传输通道
  • Redis--如何保障缓存数据库一致性?(面试高频问题)
  • vxe-table 实现跨行按钮同时控制两行的编辑状态
  • 某些iphone手机录音获取流stream延迟问题 以及 录音一次第二次不录音问题
  • “事务认证平台”:个人日常事务管理系统的诚信体系建设
  • C++--------继承
  • Gitlab17.7+Jenkins2.4.91实现Fastapi/Django项目持续发布版本详细操作(亲测可用)
  • C语言-结构体嵌套
  • 服务器数据恢复—Lustre分布式文件系统下服务器节点进水的数据恢复案例
  • 【网络工程师教程】六、网络互联与互联网
  • github codespaces推送镜像时unauthorized: access token has insufficient scopes 解决方法
  • 云服务器yum无法解析mirrorlist.centos.org
  • 网安瞭望台第17期:Rockstar 2FA 故障催生 FlowerStorm 钓鱼即服务扩张现象剖析
  • oracle基础:理解 Oracle SQL 中的 WHERE 后的 (+) 用法
  • 在k8s上使用strimzi operator安装kafka集群
  • selenium学习笔记(二)
  • 模型工作流:自动化的模型内部三角面剔除
  • ID卡网络读卡器Python小程序开发
  • Python软体中简化版MapReduce任务的实现:处理大量日志数据
  • spring security 超详细使用教程(接入springboot、前后端分离)
  • 研发效率提升
  • USB免驱IC读卡器QT小程序开发
  • Hive SQL 之 `LATERAL VIEW EXPLODE` 的正确打开方式
  • DS的使用
  • StarRocks 排查单副本表
  • Kotlin 语言基础语法及标准库