虚拟机linux superset 连接 windows数据库(源码级别配置)

 

虚拟环境:linux版本 centos7.0,python2.7(3.5、3.6应该也可以)python需要 下载pymysql包

 

最近想玩superset,但是 虚拟机搞了一整天 才整明白怎么连接数据库,特此整理下,希望对初学者有所帮助,如有问题,欢迎指正!

 

1.linux中修改superset 包下的 config.py配置

注:config.py路径 :/root/superset/ck/lib/python2.7/site-packages/superset/

[[email protected] ~]# cd /root/ck_superset/ck/lib/python2.7/site-packages/superset/

[[email protected] ~]# vim config.py

 

因为superset默认sqlite连接,故需修改并放开62行注释(即打开mysql方式),mysql连接为:

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:[email protected]:3306/mayibase?charset=utf8'

注意格式: 'mysql+pymysql://数据库用户名:密码@192.168.0.106:3306/数据库名?charset=utf8' ,

                   其中ip地址是所需连接数据库的地址;charset是根据数据库的编码方式决定,一般为utf8

注意:此处ip为windows网卡ip(连接哪里的数据库,就写哪个数据库的 ip,不是虚拟机ip!)

linux 下 superset 连接 windows 数据库(mysql)

 

2.重新创建管理员用户名和密码 

执行 #fabmanager create-admin --app superset 

此处若提示缺少pymysql包,需先下载pip install pymysql

若提示pymysql错误,则请看下面注意内容。

注意:这里连接windows的mysql数据库,则需要windows数据库开放远程连接功能,因为mysql默认只允许本地连接。

windows mysql开放远程连接方法:

打开cmd,进入mysql.exe 目录(默认安装则为C:\Program Files\MySQL\MySQL Server 5.6\bin),如图

linux 下 superset 连接 windows 数据库(mysql)

linux 下 superset 连接 windows 数据库(mysql)

 

然后继续执行下面步骤

●新建用户远程连接mysql数据库

grant all on *.* to [email protected]'%' identified by 'root' with grant option; 

flush privileges;

允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(root)来访问这个mysql server。

注意:命令结尾要加分号!admin账户不一定要存在。

linux 下 superset 连接 windows 数据库(mysql)

查询账户结果,若修改成功,则root 后边为 %,表示任何ip地址可连接

select user,host from user;

linux 下 superset 连接 windows 数据库(mysql)

然后再回到 linux中,执行#fabmanager create-admin --app superset 创建账户

成功创建用户则在linux提示:

linux 下 superset 连接 windows 数据库(mysql)

3.linux中初始化

(1)初始化Superset 

#superset db upgrade 

(2)创建默认角色和权限 

#superset init 

4.linux中启动服务Superset 

#superset runserver -d -p 8088

5.打开windows浏览器 ,输入ip :8088 登陆后,左上角数据源,即可看到连接到mysql

linux 下 superset 连接 windows 数据库(mysql)linux 下 superset 连接 windows 数据库(mysql)

 

相关文章: