mysql的設(shè)置
在要作為元數(shù)據(jù)庫的mysql服務(wù)器上建立hive數(shù)據(jù)庫:
#建立數(shù)據(jù)庫
create database if not exists hive;
#設(shè)置遠(yuǎn)程登錄的權(quán)限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
#刷新配置
FLUSH PRIVILEGES;
或者創(chuàng)建專門訪問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驅(qū)動放入hive/lib目錄下。
注:grant all privileges on來更改用戶對應(yīng)某些庫的遠(yuǎn)程權(quán)限
grant all privileges on 庫名.表名 to '用戶名'@'IP地址' identified by '密碼' with grant option;
flush privileges;
庫名:要遠(yuǎn)程訪問的數(shù)據(jù)庫名稱,所有的數(shù)據(jù)庫使用“*”
表名:要遠(yuǎn)程訪問的數(shù)據(jù)庫下的表的名稱,所有的表使用“*”
用戶名:要賦給遠(yuǎn)程訪問權(quán)限的用戶名稱
IP地址:可以遠(yuǎn)程訪問的電腦的IP地址,所有的地址使用“%”
密碼:要賦給遠(yuǎn)程訪問權(quán)限的用戶對應(yīng)使用的密碼
需要注意mysql的配置文件中的bindaddress 的參數(shù)和skip-networking 配置
bindaddress : 設(shè)定哪些ip地址被配置,使得mysql服務(wù)器只回應(yīng)哪些ip地址的請求),最好注釋掉該參數(shù)或設(shè)置成為127.0.0.1以外的值
skip-networking : 如果設(shè)置了該參數(shù)項,將導(dǎo)致所有TCP/IP端口沒有被監(jiān)聽,也就是說出了本機,其他客戶端都無法用網(wǎng)絡(luò)連接到本mysql服務(wù)器,所以應(yīng)該注釋掉該參數(shù)
另外還需要在hive-site.xml配置文件配置mysql驅(qū)動,用戶名,及密碼配置信息
附:如果更改mysql root用戶密碼,需在/etc/my.cnf配置文件中增加host =localhost和password =root123兩項配置項,不然會導(dǎo)致本地或者遠(yuǎn)程工具連接不上mysql,進(jìn)而也會導(dǎo)致hive啟動報一些連接元數(shù)據(jù)庫mysql相關(guān)的錯誤