一、执行命令
schematool -dbType mysql -initSchema
二、错误提示
(一)Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
(二)org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
Underlying cause: java.sql.SQLNonTransientConnectionException : Public Key Retrieval is not allowed
MySQL数据库版本为:8.0.37
MySQL驱动包版本为:8.0.30
HIVE版本:3.1.2
三、解决办法
(一)针对“二、错误提示(一)”
1. 解释
正在尝试加载一个已经不再被推荐使用的MySQL JDBC驱动类com.mysql.jdbc.Driver
。从MySQL Connector/J 5.1版本开始,推荐使用com.mysql.cj.jdbc.Driver
这个新的驱动类。
2.处理方式
编辑$HIVE_HOME/conf/hive-site.xml文件,将javax.jdo.option.ConnectionDriverName的值从: com.mysql.jdbc.Driver更改为: com.mysql.cj.jdbc.Driver
(二)针对“二、错误提示(二)”
1.解释
java.sql.SQLNonTransientConnectionException
是 Java 中与数据库连接相关的异常,表示不会自动恢复的连接异常。这个异常通常指示了一个持久的问题,比如无法建立连接,或者连接已经丢失。
2.处理方式
MySQL Connector/J 5.1.31 或更高版本可以在JDBC URL 中添加 allowPublicKeyRetrieval=true
参数。我的MySQL驱动包版本为:8.0.30,故编辑$HIVE_HOME/conf/hive-site.xml文件在JDBC URL中补充该参数,如下图:
解释:hive中 & 符号使用 & 来表示。
四、验证结果
重新执行“一、执行命令”
mysql数据库节点上已经添加了hive数据库,说明连接数据库成功。