1. 程式人生 > >Caused by: java.sql.SQLException: Unable to open a test connection to the given database報錯無法開啟到給定資料庫

Caused by: java.sql.SQLException: Unable to open a test connection to the given database報錯無法開啟到給定資料庫

在啟動hive或則其他要連線資料庫的時候 ,都有可能遇到這個問題

[[email protected] bin]$ ./hive
Caused by: java.sql.SQLException: Unable to open a test connection to the given database. JDBC url = jdbc:mysql://localhost:3306/hive, username = root. Terminating connection pool (set lazyInit to true if you expect to start your database after your app). Original Exception: ------
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'hive'

原因:

mysql和hive是在同一臺主機所以將ip地址改為本機
在hive-site.xml配置檔案中

<value>jdbc:mysql://192.168.24.26:3306/hive_13?characterEncoding=UTF-8</value>
修改為
 <value>jdbc:mysql://master:3306/hive_13?characterEncoding=UTF-8</value>

分析:

有192.168.24.26改為master後 MySQL使用者名稱也隨之發生成APP,此時需要在其中對其重新授權;

解決:

方案一:許可權問題

可能由於root的許可權不夠,可以進行如下操作

  1. 以root進入mysql

  2. 賦予root許可權:

mysql> GRANTALL PRIVILEGES ON . TO ‘APP’@‘master’

-> IDENTIFIEDBY ‘some_pass’ WITH GRANT OPTION;

//本地操作的許可權

mysql> GRANTALL PRIVILEGES ON . TO ’ root ‘@’%’

-> IDENTIFIEDBY ‘some_pass’ WITH GRANT OPTION;

                //遠端操作的許可權

重新整理:

        flush privileges;

注意:因為你的配置有改動,都要重新啟動hdfs和mysql
方案二:mysql驅動問題
mysql-connector-java-5.1.21-bin.jar換成較高版本的驅動如mysql-connector-java-6.0.3-bin.jar
下載路徑http://ftp.ntu.edu.tw/MySQL/Downloads/Connector-J/