问题:前几天安装superset的时候,superset访问 sqlite3数据库时报错:unable to open database
分析:
这个一看就是权限问题.我的数据库文件地址是: ~/.superset/superset.db
我使用指令
chmod 777 ~/.superset/superset.db修改了文件的权限,还是报错.
后来,别人说不仅要修改文件的权限,最重要的是修改这个文件所属 上一层文件夹的属性!
所以执行指令了
chmod 777 ~/.superset/success!
总结:
我又重新来了一遍.
(1)首先文件的own 还有用户组应该设置为我的 hadoop用户,不知道为啥这里默认是 root了,权限太高,
分别执行
chown hadoop ~/.superset/superset.db chgrp hadoop ~/.superset/superset.db(2)再修改文件所属文件夹的权限:
chmod 777 ~/.superset/即可!
借这个机会学习了一下linux文件夹权限问题:
主要参考网站:
http://www.cnblogs.com/avril/archive/2010/03/23/1692809.html
http://jingyan.baidu.com/article/380abd0a7190061d90192cce.html
(1) 使用 指令
-ls -l ~/.superset/superset.db就可以查看文件的权限:
-rw-r--r--总共有10个字符,
2-4,5-7,8-10分别表示 文件所有者(own),同组用户,其他用户的权限.
三个权限分别是,rwx,表示 "读权限","写权限"和"执行权限",有这个权限就标示相应权限,没有就标示"-"字符.
所以,上面这个图表示文件 ~/.superset/superset.db的权限是:
所有者hadoop有读写权,hadoop组的用户有读权限,其他用户读权限.
我们要想看 文件夹~/.superset的权限,执行 -ls -l ~/.superset/是不行的,
它查看的是目录~/.superset/下文件的权限.
所以使用指令
-ls -l -a ~/结果是
解释一下,由于~/.superset/文件是 系统隐藏文件,所以加了一个 -a参数,显示所有文件信息.
第一个单词的第一个字符是 d表示~/.superset/ 是目录文件,没毛病!
其他没什么好说的了.
(3) 改变用户所有者指令:
执行命令前:
执行命令:
chown hadoop ~/.superset/superset.db执行后:
(4)改变用户组指令:
执行命令前:
chgrp hadoop ~/.superset/superset.db执行后:
(5)改变文件权限
chmod 777 superset.db
7=4+2+1,分别表示读,写,执行权限.
故 4:读
2:写
1:执行
6:读写
5:读执行
3:写执行,ok!