Hive是基于Hadoop的數(shù)據(jù)倉(cāng)庫(kù)工具,它可以讓我們方便地對(duì)海量數(shù)據(jù)進(jìn)行分析和查詢。而在使用Hive時(shí),我們經(jīng)常需要借助數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)和管理元數(shù)據(jù)信息。比如,在Hive中使用MySQL作為元數(shù)據(jù)存儲(chǔ)庫(kù),就需要先安裝MySQL,并在Hive配置文件中指定相應(yīng)的連接信息。
然而,在 MySQL 安裝時(shí),我們有可能會(huì)忘記設(shè)定密碼,這會(huì)給我們帶來(lái)一些困擾。當(dāng)我們嘗試通過(guò)Hive連接MySQL時(shí),就會(huì)收到連接失敗的錯(cuò)誤提示:
Could not establish connection to jdbc:mysql://localhost:3306//metastore?createDatabaseIfNotExist=true: java.sql.SQLException: Access denied for user 'hive'@'localhost' (using password: YES)
出現(xiàn)這個(gè)問(wèn)題時(shí),我們可以通過(guò)以下方式來(lái)解決:
1. 停止 MySQL 服務(wù)
$ sudo service mysql stop
2. 使用 --skip-grant-tables 參數(shù)啟動(dòng) MySQL
$ sudo mysqld_safe --skip-grant-tables &
3. 重新登錄到 MySQL
$ mysql -u root -p
4. 修改 root 用戶密碼(這里假設(shè)我們要將密碼改為“new_password”)
mysql>use mysql; mysql>update user set authentication_string=password('new_password') where user='root'; mysql>flush privileges; mysql>quit;
5. 重啟 MySQL 服務(wù)
$ sudo service mysql start
這樣,我們就可以重新設(shè)置 MySQL 的密碼了。當(dāng)然,重啟 MySQL 后,我們還需要在 Hive 配置文件中正確指定 MySQL 的連接信息。