Can't create/write to file '/tmp/#sql_16bd_0.MYI' (Errcode: 13)

问题描述:要写的目录 没有权限

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;

发布了177 篇原创文章 · 获赞 288 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/bbvjx1314/article/details/103692888