MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误

出现错误

今天像往常一样启动Hiveserver2服务,本以为启动成功,去另一台客户端连接Hive,发现连接失败(请忽略spark的错误…)。
MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误
MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误

错误原因

(1) 错误原因是拒绝连接,首先查看10000端口是不是被占用了,执行netstat -tunlp|grep 10000

MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误
发现10000端口没有被占用,但是Hiveserver2也没启动,不执行hiveserver2,直接执行hive试试看能不能启动。
MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误
直接执行hive也无法启动,错误显示无法连接metastore,,所以可能是数据库服务没启动。去看mysql是否启动。

(2) 执行service mysql status查看mysql服务的启动情况。
MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误

出现了这个错误,使用root用户查看又发现mysql服务处于正常运行状态。
MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误
于是重启mysql服务,再到普通用户中去查看,还是显示not running。
MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误
(3) 看mysql错误日志,到mysql目录中,执行less mysql.err
MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误发现并没有错误信息,那么问题就可能在配置文件hive-site中了。

(4) 到hive/conf中去查看hive-site。执行cat hive-site.xml
MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误
(5) 发现我们这里配置了metastore,原因找到,配置metastore之后,启动hive前需要先启动metastore服务

解决办法

(1) 启动metastore服务,到hive目录中执行hive --service metastore &
MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误

(2) 启动hiveserver2服务,执行hiveserver2
MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误
(3) 启动beeline,执行beeline
MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误

(4) 连接hiveserver,执行!connect jdbc:hive2://mini1:10000(这里的mini为主机名,根据个人的主机名进行修改),成功启动hive
MySQL is not running, but lock file (/var/lock/subsys/mysql[失败]ts错误