centos mycat安装 centos7.6安装教程
大家好,今天给各位分享centos mycat安装的一些知识,其中也会对centos7.6安装教程进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
零基础如何mysql学习
最近,有很多学员留言让我整理一下“零基础如何mysql学习?”.今天沙河电脑培训就整理一下学习MySQL你需要掌握的知识点以及送给新手学习的建议,希望对大家能够有所帮助!
给新手的学习建议:
1.在学习新的东西的时候,我们至少从三个问题开始。What?why?how?
2.学习需要坚持,如果还没准备好坚持半年比较枯燥的MySQL之旅,那么就别开始。
3.学习东西不在多,在精,市面上有非常多的MySQL教程,不要瞎学,今天这里学一点,明天那里学一点,这样你学的都只是知识点,无法形成一个知识面,知识网络。
4.在学习过程中充满好奇,使用google进行问题搜索,千万不要使用度娘了,质量不高。至于怎么用Google,请自行搜索。
5.学习的目的在于使用,因此,不要仅仅看书,看一遍,看两遍,你可能还是没什么感觉。因此学习一开始,就要动手练习,把资料上的情况,模拟一下。
6.请不要在windows上安装mysql进行学习,因为工作中都是linux系统。我们需要从一开始就是实战,就是生产环境。
7.保持好心态,一步一个脚印的前进。
学习MySQL你需要掌握的知识点:
1.系统,当然windos基本的要会。然后就是Linux系统,现在做MySQLDBA的系统多数都是Linux系统,而生产环境大多又是RedHat,Centos。其他的Linux和Unix系统可以只做了解。
2.Linux基础,网络,IO,内存,磁盘,CPU。包括不限于安装,启动过程,目录结构,远程登录,文件属性与管理,用户与用户权限,LAMP结构vim,yum等shell命令,dns,ftp,以及一些常用工具。
3.MySQL基础:MySQL安装、MySQL体系结构,SQL,MySQL管理维护。
4.数据备份与恢复,常用的引擎:MyISAM、Innodb、NDB等。
5.数据库设计优化,一个好的MySQL系统,往往从设计开始。
6.SQL优化,参数优化,监控,安全等。
7.MySQL负载均衡,读写分离,MHA,MMM高可用架构,以及分布式架构:mycat、maxscale、galeracluster、MySQLGroupReplication等。
8.mysql5.6,mysql5.7新特性,mariadb、percona分支的差异和特点。
9.MySQLJSON、MySQLmemcached。
10.常见MySQL搭配的缓存系统,redis,memcached,以及NOSQL、NEWSQL。
以上,就是小编为大家整理的mysql学习你需要掌握的知识点以及送给新手学习的建议,希望能够帮助到大家!
Docker映射配置文件到宿主机
最近在做mysql中间件的docker,搞了mycat、mysql route都拉不起来容器,最后试试proxysql可以,proxysql官方发布了镜像,感觉比较可靠。但是遇到一个小问题,笔者以前写过一篇文章-Docker MySQL数据持久化,用数据卷挂载的方式将mysql的数据(映射数据目录)持久化到宿主机。那么配置文件也是有必要来映射的,注意就可以避免在容器内安装编辑器。
容器内有apt 和ap-get工具,安装前要apt update(或者apt-get update,较慢)更新软件列表,然后apt install(或者apt-get install),这样会增大容器空间,是没有必要的。笔者以前就是这样操作的,但是比较麻烦,而且容器如果是内部网络的话来安装的话就更加不方便了。笔者在映射数据目录时使用-v/home/mysql/data:/var/lib/mysql 。但是使用同样的分发,今天在映射proxysql的配置文件proxysql.cnf时遇到一个麻烦。
先看看笔者挂载时遇到的问题: Are you trying to mount a directory onto a file。
都是文件,那里来的目录呢。映射的意思是将可以将宿主机目录挂载到容器中,那么可能就是将/home/mycentos/proxysql.cnf设别为一个目录了,因为容器内/etc/proxysql.cnf的是真实存在的文件。在/home/mycentos/目录下ls-l查看一下。
果然是目录!辗转反侧找到原因是 docker启动容器进行挂载的时候,如果路径不存在,那么docker会自动创建一个目录。
笔者的home/mycentos/目录下没有proxysql.cnf文件,挂载时docker就新建了一个proxysql.cnf的目录,但是这个对于挂载数据目录时是十分有用的,对于配置文件来说是不行的。于是笔者在目录home/mycentos/下新建了一个proxysql.cnf文件,再次运行docker run成功(前面运行失败的容器需要删除,不然名称冲突)。
docker run-itd--name proxysql-p 16032:6032-p 16033:6033-p 16070:6070-v/home/mycentos/proxysql.cnf:/etc/proxysql.cnf proxysql/proxysql
挂载后,容器内的/etc/proxysql.cnf配置文件是空的,不挂载的情况下是保持默认配置文件内容的,使用徐需要在编辑/home/mycentos/proxysql.cnf文件,然后进入容器后/etc/proxysql.cnf配置文件会跟随改变的。但是配置文件为空,那么就要从头开始配置,这对于配置文件很多的话是不方便的,保留原来的配置配置文件,再在里面修改会更加方便。这里笔者只能想到先运行一个容器,然后docker cp拷贝容器内的文件或者文件夹,在删除这个容器,另外开一个配置文件映射的容器。
映射配置文件避免在容器内进行apt操作,使得容器膨胀过大。比如你要安装编辑器vi,首先要apt update更新,然后apt install,相比于在容器外对其进行操作来说,更加麻烦没必要。
20231121_安装mycat1.6_配置读写分离
安装mycat1.6前需确保JDK已安装。
1.下载mycat1.6安装包,解压后将其复制至/usr/local目录。安装包名:Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz。
2.开始解压并复制文件至mycat目录。修改配置文件,包括日志文件的日志级别、server.xml和schema.xml文件。
负载均衡类型有四种选择:
(1)balance="0":不开启读写分离机制,所有读操作发至当前可用的writeHost。
(2)balance="1":所有readHost与stand by writeHost参与select语句负载均衡,适用于双主双从模式,确保大容量数据环境下的平衡。
(3)balance="2":所有读操作随机分布至writeHost、readhost。
(4)balance="3":所有读请求随机分发至readhost执行,writerHost不负担读压力,单主单从模式适用。
确保主从复制功能开启。修改主机上mysql的日志格式为STATEMENT。在从机配置my.cnf文件,确保主从服务关闭防火墙,建立账号并为从机授予权限。
执行以下命令:对于mysql5.7和8.0分别在主机上操作。在主从机上创建数据库,根据schema.xml文件配置的名称。
如果主库已有数据库,需要导出SQL语句并导入到从机。主库操作完毕后,重启MySQL服务,查询主服务器状态,记录File和Position值。
在从机上配置复制功能,执行相关命令检查状态。若报错3021,先停止、重置主服务器,再重新执行命令启动复制。
启动mycat服务,注意权限问题。至此,完成读写分离配置,使用mycat进行测试。
启动mycat时可能出现报错,解决方式:在CentOS7.6上无需安装JDK;确保mycat和bin目录下的文件权限为755;常见错误为报错信息明确,需要查看并处理特定问题。
如果主库添加了全文索引而从库已有相同主键索引,需删除两个从库索引,重建从库索引。确保建索引时注意从库状态。
权限不足问题需执行 chmod+755操作。
执行mysql> show slave status\G;发现延迟较高时,不要盲目操作从库,应flush logs。避免操作导致错误,如删除索引时应使用drop table if exists。
处理数据不同步时,通过执行相关语句恢复数据,具体操作在从机执行。
在XML中,有五个预定义实体引用,注意实体引用后的冒号。在XML中,"<"和"&"为非法字符,使用实体引用是良好习惯。
每次异常恢复后,若主从不同步,应执行恢复数据操作,具体执行语句在不同步的从机上执行。