《Mycat分布式数据库架构》之爬坑之路

前文回顾:
《Mycat分布式数据库架构》之原理及架构
《Mycat分布式数据库架构》之搭建详解
《Mycat分布式数据库架构》之配置详解
《Mycat分布式数据库架构》之数据切分和读写分离
《Mycat分布式数据库架构》之故障切换
《Mycat分布式数据库架构》之数据切分实战
《Mycat分布式数据库架构》之全局自增ID
《Mycat分布式数据库架构》之ER分片
《Mycat分布式数据库架构》之高可用集群
《Mycat分布式数据库架构》之Mycat管理



1、mycat成功启动MyCAT Server startup successfully. see logs in logs/mycat.log,但是mycat.log中出现报错如下
DBCHeartBeat error java.sql.SQLException: 
No suitable driver found for jdbc:oracle:thin:@192.168.157.130:1521:hr...

原因:缺少驱动jar包,如果你使用除mysql之外所有的数据库,连接的时候都需要加上对应数据库的驱动jar包。

解决方法:这里使用oracle数据库,连接Oracle可使用ojdbc14.jar,添加到mycat的lib目录下,如下:

在这里插入图片描述


2、心跳检测报错

在mycat.log中心跳检测出现报错:

JDBCHeartBeat error java.sql.SQLException: 
Io Exception: The Network Adapter could not establish the connection...

原因:mycat连接不上这个数据节点,ip地址或者监听有异常。

解决办法:检查ip地址和防火墙端口,确保数据库监听正常。


3、执行shell脚本/init_zk_data.sh时报错
-bash: ./init_zk_data.sh: /bin/bash^M: bad interpreter: No such file or directory。

使用vim命令打开sh文件

vim init_zk_data.sh

然后使用如下命令查看

:set ff

结果显示fileformat=dos,是文件格式的问题。

解决办法:

vim init_zk_data.sh
:set fileformat=unix

然后保存退出即可

:wq

接下来就能执行./init_zk_data.sh这个脚本了。


4、zookeeper启动失败

zookeeper启动失败,如下

[root@oraserver apache-zookeeper-3.5.7]# bin/zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /root/data/apache-zookeeper-3.5.7/bin/../conf/zoo.cfg
Starting zookeeper ... FAILED TO START

查看日志

[root@oraserver apache-zookeeper-3.5.7]# cd logs
[root@oraserver logs]# ls
zookeeper-root-server-oraserver.out
[root@oraserver logs]# cat zookeeper-root-server-oraserver.out

日志显示找不到或无法加载主类org.apache.zookeeper.server.quorum.QuorumPeerMain
原因:从版本3.5.5开始,带有bin名称的包才是可以直接运行使用的,需重新下载压缩包。


5、zookeeper日志显示myid file is missing

zookeeper启动成功,但是使用bin/zkServer.sh status命令显示没有真正运行成功。

[root@oraserver apache-zookeeper-3.5.7-bin]# bin/zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /root/data/apache-zookeeper-3.5.7-bin/bin/../conf/zoo.cfg
Starting zookeeper ... FAILED TO START
[root@localhost apache-zookeeper-3.5.7-bin]# bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /root/data/apache-zookeeper-3.5.7-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.

查看日志如下

[root@oraserver apache-zookeeper-3.5.7-bin]# cd logs
[root@oraserver logs]# ls
zookeeper-root-server-oraserver.out
[root@oraserver logs]# cat zookeeper-root-server-oraserver.out
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /home/crxj-coll/zookeeper-3.4.5/bin/../conf/zoo.cfg
  at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:121)
  at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
  at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by: java.lang.IllegalArgumentException: myid file is missing
  at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:344)
  at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:117)
  ... 2 more
Invalid config, exiting abnormally

根据日志我们可以看出myid文件缺失,应该是myid文件的路径不对,修改zoo.cfg配置文件中的dataDir属性,保证路径正确即可,我这里是在zookeeper安装目录中新建了一个data目录存放myid文件,dataDir修改为如下所示。

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/root/data/apache-zookeeper-3.5.7-bin/data
# the port at which the clients will connect
clientPort=2181
server.0=192.168.157.129:2888:3888
server.1=192.168.157.130:2888:3888
server.2=192.168.157.131:2888:3888

修改完成后便可成功启动,如下所示。

[root@oraserver apache-zookeeper-3.5.7-bin]# bin/zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /root/data/apache-zookeeper-3.5.7-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@oraserver apache-zookeeper-3.5.7-bin]# bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /root/data/apache-zookeeper-3.5.7-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower


更多技术干货,请持续关注程序员大佬超。
原创不易,转载请注明出处。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员大佬超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值