问题描述:要写的目录 没有权限
tmpdir是MySQL存临时文件的目录的路径名。如果未设置变量tmpdir,MySQL将使用系统的默认值,通常为/tmp、/var/tmp或/usr/tmp。
解决方案:
查看系统变量tmpdir,如下所示,tmpdir变量指定路径为/tmp
mysql> show variables like 'tmpdir';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir | /tmp |
+---------------+-------+
1 row in set (0.00 sec)
我们可以修改/tmp目录的权限; 或者修改数据库的临时目录来解决这个问题:
1:在配置文件my.cnf中修改数据库的临时目录,然后需要重启MySQL数据库
tmpdir = /var/lib/mysql
2:修改/tmp目录权限
chmod 1777 /tmp
或
chmod 777 /tmp
或
chmod 777 -R /tmp/
查看 vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# character-set-server=utf8
# default-storage-engine=InnoDB
重启 mysql
service mysqld restart
重新创建 hive
初始化: 到 hive 的 bin 目录下
schematool -initSchema -dbType mysql
出现如下提示表示初始化成功:
启动hive并测试(确保hadoop集群已经启动)
然后 show databases;