1、进入hive/conf目录下,修改hive-default.xml: @baidu, I 修改的是 hive-site.xml
hive.metastore.local
true
javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.0.121:3307/hive?createDatabaseIfNotExist=true
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore
javax.jdo.option.ConnectionUserName
root
username to use against metastore database
javax.jdo.option.ConnectionPassword
root
password to use against metastore database
hive.metastore.warehouse.dir
/home/hadoop/hive/warehouse
location of default database for the warehouse
然后启动 bin/hive,执行show tables命令 这时报FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Access denied for user 'root'@'fuyanqing.feinno.com' (using
password: YES)。这是因为mysql不允许远程访问的问题,执行 grant all on *.* to 'root'@'%' identified by 'root';
然后再执行show tables命令,这时报:FAILED: Error in metadata: javax.jdo.JDODataStoreException: An exception was thrown while adding/validating class(es) : Specified key was
too long; max key length is 767 bytes。
这个问题是因为hive对mysql的UTF-8编码方式有限制,修改一下mysql的编码方式即可:alter database name character set latin1;