source /etc/profile
确认MySQL主从复制正常
在配置Mycat前,请确认MySQL的主从复制安装配置已完成并正常运行。MySQL主从数据的同步在MySQL中配置,Mycat不负责数据同步的问题。
补充:
-
MySQL主从复制配置中,如果涉及到函数或存储过程的同步复制,需要在/etc/my.cnf中的[mysqld]段中增加配置log_bin_trust_function_creators=true 或在客户端中设置 set global log_bin_trust_function_creators = 1;
-
如果要做读写分离下的主从切换,那么从节点也有可能会变为写节点,因此从节点就不能设置为只读 read_only=1
-
Linux版本的MySQL,需要设置为MySQL大小写不敏感,否则可能会发生找不到表的问题。可在/etc/my.cnf的[mysqld]段中增加lower_case_table_names=1 。
配置schema.xml
schema.xml是Mycat最重要的配置文件之一,用于设置Mycat的逻辑库、表、数据节点、dataHost等内容,
[root@liuyazhuang133 conf]$ cd /usr/local/root/conf/
[root@liuyazhuang133 conf]$ vi schema.xml
文件内容如下所示。
<?xml version="1.0"?><mycat:schema xmlns:mycat=“http://org.opencloudb/”>
<dataHost name=“dtHost2” maxCon=“500” minCon=“20” balance=“1”
writeType=“0” dbType=“mysql” dbDriver=“native” switchType=“2” slaveThreshold=“100”>
show slave status
</mycat:schema>
Mycat1.4开始支持MySQL主从复制状态绑定的读写分离机制,让读更加安全可靠,配置如下:
Mycat心跳检查语句配置为 show slave status ,dataHost 上定义两个新属性:switchType=“2” 与 slaveThreshold=“100”,此时意味着开启MySQL主从复制状态绑定的读写分离与切换机制,MyCat心跳机制通过检测 show slave status 中的 “Seconds_Behind_Master”, “Slave_IO_Running”, “Slave_SQL_Running” 三个字段来确定当前主从同步的状态以及Seconds_Behind_Master主从复制时延,当Seconds_Behind_Master 大于slaveThreshold时,读写分离筛选器会过滤掉此Slave机器,防止读到很久之前的旧数据,而当主节点宕机后,切换逻辑会检查Slave上的Seconds_Behind_Master是否为0,为0时则表示主从同步,可以安全切换,否则不会切换。
配置 server.xml
server.xml 主要用于设置系统变量、管理用户、设置用户权限等。
[root@liuyazhuang133 conf]$ vim server.xml
文件内容如下所示。
<?xml version="1.0" encoding="UTF-8"?><mycat:server xmlns:mycat=“http://org.opencloudb/”>
druidparser
utf8mb4
lyz.123
lyz_schema1,lyz_schema2
lyz.123
lyz_schema1,lyz_schema2
true
</mycat:server>
防火墙中打开8066和9066端口
Mycat的默认数据端口为8066,mycat通过这个端口接收数据库客户端的访问请求。
管理端口为9066,用来接收Mycat监控命令、查询Mycat运行状况、重新加载配置文件等。
[root@liuyazhuang133 mycat]# vim /etc/sysconfig/iptables
增加:
MyCat
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8066 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9066 -j ACCEPT
重启防火墙:
[root@liuyazhuang133 mycat]# service iptables restart
修改log日志级别为debug
修改log日志级别为debug,以便通过日志确认基于Mycat的MySQL数据库集群读写分离的数据操作状态(可以在正式上生产前改成info级别)
[root@liuyazhuang133 conf]$ vim /usr/local/mycat/conf/log4j.xml
[root@liuyazhuang133 bin]$ cd /usr/local/root/bin/
(1) 控制台启动,这种启动方式在控制台关闭后,Nycat服务也将关闭,适合调试使用:
[root@liuyazhuang133 bin]$ ./mycat console
(2) 可以采用以下后台启动的方式:
[root@liuyazhuang133 bin]$ ./mycat start
Starting root-server…
(1) 如果本地Windows安装有MySQL,可以使用已有的mysql客户端远程操作Mycat
(2) Nativecat连接Mycat
读写分离测试
(1) 监听Mycat日志
[root@liuyazhuang133 ~]$ cd /usr/local/mycat/logs/
[root@liuyazhuang133 logs]$ tail -f mycat.log
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
最后的话
无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!
部分截图:
642GPL-1711025209626)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-LNQXorJg-1711025209627)]
最后的话
无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!
部分截图:
[外链图片转存中…(img-68iuIcAN-1711025209627)]