hive需要将derby换mysql吗_在linux环境下把hive内嵌的Derby数据库替换成Mysql

本文介绍了在Linux环境下将Hive默认的Derby数据库替换为MySQL的完整过程,包括MySQL的安装、配置、权限设置以及解决启动时的错误。在迁移过程中需要注意MySQL版本与Hive的兼容性,以及在配置文件中设置正确的字符集。遇到的权限问题需要通过GRANT ALL PRIVILEGES命令来解决,但需注意命令中的主机名设置。
摘要由CSDN通过智能技术生成

因为Hive本身的Derby数据库功能很弱,所以准备替换成Mysql,但是没想到还是有些坑在里面。替换数据库问题忙了一下午。现在给大家整理一下。

一、首先要保证hive原本使用是没有问题的,接下来将mysql安装到linux,这里务必保证mysql的版本功能是支持你的hive版本的。如果之前安装过mysql,可以用rpm -qa | grep -i mysql 查看之前的版本,然后用rpm -ev –nodeps mysql-libs-5.1.71-1.el6.x86_64(原来安装的版本)这个命令进行清除,然后再次执行rpm -qa | grep -i mysql为空,说明清除成功。

二、安装新的mysql,这个地方我是安装的MySQL-server-5.6.29-1.linux_glibc2.5.x86_64.rpm和MySQL-client-5.6.29-1.linux_glibc2.5.x86_64.rpm两个压缩包(hive是1.2.0的版本)。注意,解压压缩包之前,需要添加用户组groupadd mysql,增加用户mysql,加入mysql用户组 useradd -r -g mysql mysql安装完成,然后先安装server,再安装client。

#修改my.cnf,默认在/usr/my.cnf

vim /usr/my.cnf

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

character_set_server=utf8

# basedir = .....

# datadir = .....

# port = .....

# server_id = .....

# socket = .....

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#将mysqld加入系统服务,并随机启动

cp /usr/share/mysql/mysql.server /etc/init.d/mysqld

#启动mysqld

service mysqld start

#获取mysql安装时root用户的随机密码

vim /root/.mysql_secret

#必须要修改root用户的密码才可以使用mysql,否则只能连接不能操作

mysqladmin -u root -p password root

#连接进入mysql

mysql -u root -p

root

三、进入hive下的bin目录,启动hive命令,发现报错,仔细观察,发现里面有一段错误

55e06c569357f380b9128412047bdbb0.png

The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver.

这个是说明需要把连接数据库的包放到hive的lib下面。放好之后发现再次启动还是报错,那么这个时候会看到报错信息中有这么一句。

2999d6fc9f7003b3a6eee54dd9a7b241.png

Access denied for user 'root'@'hadoop01' (using password: YES)

这说明在数据库中没有权限,链接被拒绝。需要放开数据库的权限

5816bad806398ea6a8a39d455eba96f4.png

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

但是这个开启权限有一个坑,如果还是报上面权限的错误,那么需要将上面的命令中的%改成自己的主机名或者是ip,然后再次启动hive就会发现成功了

a618f45d9b76d478ad5d7a6d8fade151.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值