hue配置使用mysql
因为Hue的元数据库是sqlite,容易产生database is locked的异常,所以建议大家把元数据库改为mysql。我们先打开mysql的root用户,然后新建一个hue用户,并为它授权,来使mysql作为hue的元数据库。
sudo service mysql start
mysql -u root -p
进入mysql后,进行如下操作:
create database hue;
create user 'hue'@'localhost' identified by '123'
grant all on hue.* to 'hue'@'localhost' identified by '123';
flush privileges;
exit;
mysql
接着我们修改hue.ini这个文件下的配置信息。
cd /usr/local/hue/desktop/conf
vim hue.ini
Shell
先修改[[databases]]的配置,然后再修改[librdbms]的[databases]的[mysql]配置。注意第一个笔者在500多行才找到,第二个在1280行才找到。建议各位以后遇到相同问题就用grep -n ‘关键词’ ‘文件名‘,这样的管道命令来先查找下。
#databases的配置,要去掉注释
engine=mysql
host=localhost
port=3306
user=hue
password=123
name=hue
#[librdbms]的[databases]的[mysql]配置,同样去掉注解
name=mysqldb
engine=mysql
port=3306
password=123
user=hue
然后对数据库进行初始化,
- cd /usr/local/hue/build/env
- bin/hue syncdb #初始化数据库,启动后会出现让你填写用户名和密码,邮箱等信息,用户名和密码既可以用系统的,也可以用新建的hue用户的,笔者只试过第一个,因为第一个填写成功后,再次初始化数据库就不会出现那些填写信息了, #至于邮箱,可以直接跳过
执行完上条命令后会出现(use ./manage.py migrate to migrate these) ,这时就需要执行下边的命令,我就是没有执行,在启动hue后用浏览器访问的时候报下边的错误:
ProgrammingError: (1146, "Table 'hue.desktop_settings' doesn't exist")
- bin/hue migrate --merge #执行完以后,可以在mysql中看到,hue相应的表已经生成。
- 再次重启报错:
No handlers could be found for logger "root"
这是因为上边启动过hue,虽然报错了,但是进程还在,把进程杀掉再启动即可。