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

临汾做网站动漫设计工作室网站宣传片制作

临汾做网站,动漫设计工作室网站宣传片制作,网站漏洞扫描工具,石家庄出入最新规定文章目录 1、Mycat介绍1.1、mycat简介1.2、mycat重要概念1.3、Mycat1.x与Mycat2功能对比1.2、主从复制原理 2、前提准备3、集群规划4、安装和配置mysql主从复制4.1、master节点安装mysql8容器4.2、slave节点安装mysql8容器4.2、配置主从复制4.3、测试主从复制配置 5、安装mycat… 文章目录 1、Mycat介绍1.1、mycat简介1.2、mycat重要概念1.3、Mycat1.x与Mycat2功能对比1.2、主从复制原理 2、前提准备3、集群规划4、安装和配置mysql主从复制4.1、master节点安装mysql8容器4.2、slave节点安装mysql8容器4.2、配置主从复制4.3、测试主从复制配置 5、安装mycat2和配置读写分离集群5.1、docker部署mycat25.2、navicat连接mycat25.3、配置主从集群信息实现读写分离 6、测试 1、Mycat介绍 1.1、mycat简介 Mycat是一套布式数据库中间件(虚拟数据库类)它本身并不存储数据库。 其原理中最重要的一个动词是“拦截”它拦截了用户发送过来的 SQL 语句首先对 SQL 语句做了一些特定的分析如分片分析、路由分析、读写分离分析、 缓存分析等然后将此 SQL 发往后端的真实数据库并将返回的结果做适当的处理最终再返回给用户。 1.2、mycat重要概念 逻辑库schema、逻辑表虚拟的逻辑上的库表 业务开发人员通常在实际应用中并不需要知道中间件的存在只需 要关注数据库所以数据库中间件可以被当作一个或多个数据库集 群构成的逻辑库逻辑库与MySQL中的Database数据库对应⼀个逻辑库中定义了所包括的Table。全局表数据源真实的mysql数据库集群配置json 1.3、Mycat1.x与Mycat2功能对比 功能1.6版本2 版本多语句不支持支持blob值支持一部分支持全局二级索引不支持支持任意跨库join(包含复杂查询)catlet支持支持分片表与分片表JOIN查询ER表支持支持关联子查询不支持支持一部分分库同时分表不支持支持存储过程支持固定形式的支持更多支持逻辑视图不支持支持支持物理视图支持支持批量插入不支持支持执行计划管理不支持支持路由注释支持支持集群功能支持支持更多集群类型自动hash分片算法不支持支持支持第三方监控支持mycat-web支持普罗米斯,kafka日志等监控流式合拼结果集支持支持范围查询支持支持单表映射物理表不支持支持XA事务弱XA支持,事务自动恢复支持MySQL8需要更改mysql8的服务器配置支持支持虚拟表不支持支持joinClustering不支持支持union all语法不支持支持BKAJoin不支持支持优化器注释不支持支持ER表支持支持全局序列号支持支持保存点不支持支持离线迁移支持支持实验增量迁移CRC32算法支持BINLOG追平实验安全停机不支持支持实验HAProxy协议不支持支持会话粘滞update后select会粘滞update后select会粘滞且支持设置时间全局表插入支持全局序列号不支持支持全局表插入支持主表插入自增结果作为序列号不支持支持外部调用的分片算法不支持但可定制支持 Mycat1.x跟Mycat2的配置完全不一样了。 1.2、主从复制原理 重点理解通过三个线程的运行过程原理 主服务将数据的更新记录保存到二进制日志–主服务器线程 从服务将主服务的二进制日志复制到本地中继日志–从服务IO线程 从服务读取中继日志更新本地数据–从服务SQL线程 2、前提准备 两台Linux服务器配置为8c32g5m/ CentOS Linux release 7.9.2009 都安装dockerdocker版本信息如下 其中一台安装配置好jdk1.8 java环境因为mycat是用java语言编写的运行需要jdk环境。 3、集群规划 主机名公网ip内网地址端口号角色用户名密码newvts-a39.xxx.xxx.232192.168.1.938066mycatrootxxxxxxxxnewvts-a39.xxx.xxx.232192.168.1.933307masterrootxxxxxxxxnewvts-b39.xxx.xxx.190192.168.1.943308slaverootxxxxxxxx 其中 newvts-a这台机子安装mycat2和mysql8 newvts-b只安装mysql8。 4、安装和配置mysql主从复制 4.1、master节点安装mysql8容器 拉取mysql8镜像。 #docker拉取mysql8镜像 docker pull mysql:8.0.25master节点安装mysql容器名称为mysql-vts-master1 docker run -p 3307:3306 --name mysql-vts-master1 \ -v /mydata/mysql-vts-master/log:/var/log/mysql \ -v /mydata/mysql-vts-master/data:/var/lib/mysql \ -v /mydata/mysql-vts-master/conf:/etc/mysql \ -v /mydata/mysql-vts-master/mysql-files:/var/lib/mysql-files \ -e MYSQL_ROOT_PASSWORDxxxxxxx \ -d mysql:8.0.25修改/mydata/mysql-vts-master/conf目录下的my.cnf注意server_id为101。 vim /mydata/mysql-vts-master/conf/my.cnf[mysqld]## 设置server_id同一局域网中需要唯一 server_id101 ## 指定不需要同步的数据库名称 binlog-ignore-dbmysql ## 开启二进制日志功能 log-binmall-mysql-bin ## 设置二进制日志使用内存大小事务 binlog_cache_size1M ## 设置使用的二进制日志格式mixed,statement,row binlog_formatmixed ## 二进制日志过期清理时间。默认值为0表示不自动清理。 expire_logs_days7 ## 跳过主从复制中遇到的所有错误或指定类型的错误避免slave端复制中断。## 如1062错误是指一些主键重复1032错误是因为主从数据库数据不一致 slave_skip_errors1062重启mysq-vts-master1容器 docker restart mysql-vts-master1master节点的mysql数据库中新建一个数据同步用户 #进入容器 docker exec -it mysql-vts-master1 /bin/bash mysql -uroot -p xxxxx#新建一个数据同步用户用户名为vts_slave CREATE USER vts_slave% IDENTIFIED BY xxxxxx; #给这个用户授予权限 GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO vts_slave%; #考虑到我的MySQL8 密码密码必须修改为mysql_native_password的plugin才能被连接不然无法连接 ALTER USER vts_slave% IDENTIFIED WITH mysql_native_password BY xxxxxx;通过navicat连接master-mysql 测试连接成功 4.2、slave节点安装mysql8容器 运行slave节点mysql8容器端口号为3308容器名mysql-vts-slave1。 docker run -p 3308:3306 --name mysql-vts-slave1 \ -v /mydata/mysql-vts-slave/log:/var/log/mysql \ -v /mydata/mysql-vts-slave/data:/var/lib/mysql \ -v /mydata/mysql-vts-slave/conf:/etc/mysql \ -v /mydata/mysql-vts-slave/mysql-files:/var/lib/mysql-files \ -e MYSQL_ROOT_PASSWORDxxxx \ -d mysql:8.0.25修改/mydata/mysql-vts-slave/conf目录下的my.cnf注意server_id为102 vim /mydata/mysql-vts-slave/conf/my.cnf[mysqld]## 设置server_id同一局域网中需要唯一 server_id102## 指定不需要同步的数据库名称 binlog-ignore-dbmysql ## 开启二进制日志功能以备Slave作为其它数据库实例的Master时使用 log-binmall-mysql-slave1-bin ## 设置二进制日志使用内存大小事务 binlog_cache_size1M ## 设置使用的二进制日志格式mixed,statement,row binlog_formatmixed ## 二进制日志过期清理时间。默认值为0表示不自动清理。 expire_logs_days7 ## 跳过主从复制中遇到的所有错误或指定类型的错误避免slave端复制中断。## 如1062错误是指一些主键重复1032错误是因为主从数据库数据不一致 slave_skip_errors1062 ## relay_log配置中继日志 relay_logmall-mysql-relay-bin ## log_slave_updates表示slave将复制事件写进自己的二进制日志 log_slave_updates1 ## slave设置为只读具有super权限的用户除外 read_only1重启mysq-vts-slave1 docker restart mysql-vts-slave1navicat连接slave节点的mysql8 测试连接成功 4.2、配置主从复制 进入主数据库 master容器查看日志文件信息和位置标号。 #进入主数据库 master容器 docker exec -it mysql-vts-master1 /bin/bash mysql -uroot -p # xxxxxx#在主数据库master容器中查看主从状态 show master status;#记着下面两个值 # File mall-mysql-bin.000001 # Postion 1005进入从数据库 slave容器 .在从数据库里面配置主从复制 #进入主数据库 slave docker exec -it mysql-vts-slave1 /bin/bash mysql -uroot -p # xxxxxx#在从数据库里面配置主从复制 change master to master_host192.168.1.93, master_uservts_slave, master_passwordxxxxx, master_port3307, master_log_filemall-mysql-bin.000001, master_log_pos1005, master_connect_retry30;在从数据库slave中开启主从同步、查看主从状态 #在从数据库中查看主从同步状态: show slave status \G #在从数据库中开启主从同步 start slave; #在从数据库中查看主从同步状态: show slave status \GSlave_IO_Running: YesSlave_SQL_Running: Yes这两个线程为yes证明主从复制配置成功。 4.3、测试主从复制配置 在主数据库中创建库和表从数据库中也相应自动创建跟主数据库一样的库和表主数据库中的表操作更新删除新增时从数据库中的表也自动更新从数据库操作更新删除新增操作时主数据库不会发生变化。 5、安装mycat2和配置读写分离集群 5.1、docker部署mycat2 mycat2镜像我使用的是docker仓库中的zhangyx1619/mycat2:mysql-1.2.1再次感谢张同学分享的mycat2镜像我用着很不错。 #拉取镜像 docker pull zhangyx1619/mycat2:mysql-1.2.1#查看镜像信息主要查看环境变量的信息 docker inspect zhangyx1619/mycat2:mysql-1.2.1拥有以下环境变量需要根据实际情况进行设置 DATA_SOURCE_URLjdbc:mysql://127.0.0.1:6606/mysql?useUnicodetrueserverTimezoneAsia/ShanghaicharacterEncodingUTF-8,DATA_SOURCE_USERmycat,DATA_SOURCE_PASSWORD!#123,MYCAT_ROOT_PASSWORD!#123,MYCAT_HOME/usr/local/mycat这里我们先通过一下方式运行一个mycat2容器然后进入此容器拷贝配置文件目录到宿主机 #首先运行一个mycat容器 docker run -d -p 8066:8066 -e DATA_SOURCE_URLjdbc:mysql://192.168.1.93:3307/mysql -e DATA_SOURCE_USERroot -e DATA_SOURCE_PASSWORDxxxxx -e MYCAT_ROOT_PASSWORDxxxxx --name mycat2 zhangyx1619/mycat2:mysql-1.2.1#进入容器 docker exec -it 自己的容器id /bin/bash#拷贝容器内部的mycat配置目录到宿主机 docker cp 03f518d53daf:/usr/local/mycat /usr/local/mycat2#查看宿主机mycat2目录下的文件确保conf logs两个文件夹的存在#删除刚运行的容器 docker rm -f 03f518d53daf#挂载数据卷mycat2相应目录重新运行zhangyx1619/mycat2:mysql-1.2.1命令如下 docker run -d -p 8066:8066 -e DATA_SOURCE_URLjdbc:mysql://192.168.1.93:3307/mysql -e DATA_SOURCE_USERroot -e DATA_SOURCE_PASSWORDxxxxx -e MYCAT_ROOT_PASSWORDxxxxx -v /usr/local/mycat2/conf/:/usr/local/mycat/conf/ -v /usr/local/mycat2/logs/:/usr/local/mycat/logs/ --name mycat2 zhangyx1619/mycat2:mysql-1.2.1#查看运行的容器 docker ps -amycat2容器运行了再次查看logs下的wrapper.log tail -f /usr/local/mycat2/logs/wrapper.log 显示successful standlone证明mycat2启动成功 5.2、navicat连接mycat2 查看数据库mycat2中能看到逻辑库了 5.3、配置主从集群信息实现读写分离 mycat2中创建逻辑库 -- 创建逻辑库 CREATE DATABASE vts_info_sys;此时查看 /usr/local/mycat2/conf/schemas/ 发现mycat自动创建了配置文件vts_info_sys.schema.json ll /usr/local/mycat2/conf/schemas/customTables放置的是mycat默认的表的配置globalTables放置的是全局表的配置shardingTables放置分片表的配置normalTables放置普通表的配置 修改逻辑库json -- 修改逻辑库 指定vts_info_sys逻辑库默认的targetName, mycat会自动加载vts_info_sys下已经有的物理表或者视图作为单表. /* mycat:createSchema{customTables:{},globalTables:{},normalTables:{},schemaName:vts_info_sys,shardingTables:{},targetName:prototype } */;创建数据源、查看数据源 #添加数据源 /*mycat:createDataSource{name:vts_master1,url:jdbc:mysql://192.168.1.93:3307/?serverTimezoneAsia/ShanghaiuseUnicodetruecharacterEncodingUTF-8autoReconnecttrue,user:root,password:xxxx } */;/*mycat:createDataSource{name:vts_slave1,url:jdbc:mysql://192.168.1.94:3308/?serverTimezoneAsia/ShanghaiuseUnicodetruecharacterEncodingUTF-8autoReconnecttrue,user:root,password:xxxx } */;#查看数据源 /* mycat:showDataSources{} */;创建修改集群 #创建集群 /*!mycat:createCluster{name:vts_info_sys_rw_c,masters:[vts_master1],replicas:[vts_slave1]} */;#查看集群 /* mycat:showClusters{} */;查询负载均衡策略readBalanceType BALANCE_ALL( 默认值 )获取集群中所有数据源BALANCE_ALL_READ获取集群中允许读的数据源BALANCE_READ_WRITE获取集群中允许读写的数据源 , 但允许读的数据源优先BALANCE_NONE获取集群中允许写数据源 , 即主节点中选择switchType NOT_SWITCH: 不进行主从切换 SWITCH: 进行主从切换 在逻辑库中配置数据源集群名称 vim /usr/local/mycat2/conf/schemas/vts_info_sys.schema.json重启Mycat docker restart mycat26、测试 验证读写分离(登录Mycat) 首先在mycat2中插入4条数据 #插入4条数据 INSERT INTO vts_info_sys.sys VALUES(1, hh1); INSERT INTO vts_info_sys.sys VALUES(2, hh2); INSERT INTO vts_info_sys.sys VALUES(3, hh3); INSERT INTO vts_info_sys.sys VALUES(4, hh4); 然后查看主数据库master1和从数据库slave1中同时也直接了4条相同的数据 此时我修改从数据库slave1中的第4条数据为hh444主数据库master1中的数据不会发生改变这符合主从复制的原理 这时我在mycat2中进行查询操作可以看到查询语句在主从二个主机间切换 至此使用MyCat2搭建一主二从数据库集群完成。 平庸的人用热闹填补空虚优秀的人则用独处成就自己。
http://www.w-s-a.com/news/794684/

相关文章:

  • 做网站前端需要编程基础吗杭州市住房和城乡建设局
  • 网站开发一般学多久网站建设投标方案
  • 北京网站建设报价表制作短视频的软件有哪些
  • 长沙企业网站开发西安建设公司网站
  • 做图的兼职网站网站开发用了哪些知识要点
  • php网站怎么做静态化微慕wordpress插件
  • 电商营业执照wordpress利于seo
  • 那些网站主做玄幻小说营销策略都有哪些方面
  • 同一源代码再建设一个网站建立网站免费
  • 网站更换服务器影响做seo必须有网站吗
  • 免费网页模板网站php微信微网站怎么做
  • 网站的优点和缺点腾讯企点是什么软件
  • 谷歌英文网站推广网页设计好看的网站
  • 衡水网站建设集团各大网站注册
  • 违法网站开发做注册任务网站源码
  • 帝国cms仿站工具淮南寿县
  • 深圳网站建设方案外包手机怎样使用域名访问网站
  • 安陆市建设局网站磐安做网站
  • 梧州市建设局官方网站商旅100网页版
  • 好的宝安网站建设中企动力的网站开发语言
  • flash网站模板怎么用怎么套模板 网站
  • 建设二手商品网站总结石景山安保服务公司电话
  • 网站建设对于企业的重要性龙岗企业网站设计公司
  • 网站搭建在线支付数码产品网站模板
  • 白云网站建设多少钱WORDPRESS添加前台会员注册
  • 商业网站模板中国字体设计网站
  • 做网站闵行网站建设中英语
  • 写作网站大全如何简单制作生理盐水
  • 云南网站建设维护互联网广告是做什么的
  • 网站 谁建设 谁负责做网站项目