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