mysql的设置

在要作为元数据库的mysql服务器上建立hive数据库:

#建立数据库
create database if not exists hive;

#设置远程登录的权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

#刷新配置
FLUSH PRIVILEGES;

或者创建专门访问hive的用户:

CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
create database hive;
grant all on hive.* to hive@'%'  identified by 'hive';
grant all on hive.* to hive@'localhost'  identified by 'hive';
flush privileges; 

并将mysql jdbc驱动放入hive/lib目录下。

 

注:grant all privileges on来更改用户对应某些库的远程权限

grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option;
flush privileges;

库名:要远程访问的数据库名称,所有的数据库使用“*”
表名:要远程访问的数据库下的表的名称,所有的表使用“*”
用户名:要赋给远程访问权限的用户名称
IP地址:可以远程访问的电脑的IP地址,所有的地址使用“%”
密码:要赋给远程访问权限的用户对应使用的密码

需要注意mysql的配置文件中的bindaddress 的参数和skip-networking 配置

bindaddress : 设定哪些ip地址被配置,使得mysql服务器只回应哪些ip地址的请求),最好注释掉该参数或设置成为127.0.0.1以外的值

skip-networking : 如果设置了该参数项,将导致所有TCP/IP端口没有被监听,也就是说出了本机,其他客户端都无法用网络连接到本mysql服务器,所以应该注释掉该参数

另外还需要在hive-site.xml配置文件配置mysql驱动,用户名,及密码配置信息

附:如果更改mysql root用户密码,需在/etc/my.cnf配置文件中增加host =localhost和password    =root123两项配置项,不然会导致本地或者远程工具连接不上mysql,进而也会导致hive启动报一些连接元数据库mysql相关的错误