redash使用与开发(二):改变服务运行的地址和端口、连接mysql数据库

最近开始将服务在局域网中部署,但是犯了一些错误导致浪费了不少时间, 今天在这里记录一下:

localhost和0.0.0.0

localhost即127.0.0.1,是本机的环回地址,无法被外部访问
0.0.0.0表示本机所有ip地址,可以被外部客户端访问

redash项目使用命令
./manage.py runserver --debugger --reload
默认运行在 localhost:5000位置,所以即使处在同一个局域网内客户端也无法访问服务。
我一开始并没有意识到这个问题,一直以为是服务器端口未开放,各种尝试开放端口,最后才意识到是地址的问题。

改变运行的地址

我的第一反应是去settings里找, 可惜没有找到,整个项目里都没有关于运行地址的设置,事实上应该在运行命令中加上-p参数指定端口,-h参数指定地址
./manage.py runserver --debugger --reload -h 0.0.0.0 -p 5000

连接MySQL数据库

首先要明白为什么mysql在网站上不显示为数据源,看这段代码:

redash/redash/query_runner/mysql.py
try:
    import MySQLdb
    enabled = True
except ImportError:
    enabled = False

所以不显示mysql就是因为MySQLdb这个库没有安装。但是这个库在python3时代已经停止了支持,就算安装好了实际连接还是会出现连接错误。取而代之的是pymysql, 所以需要对redash/redash/query_runner/mysql.py文件作一定修改, 改得很简单,只要把MySQLDb替换成pymysql即可,全部在mysql.py文件能找到。

当然另一种解决方案是使用python2.7

重启服务即可正常使用MySQL作为数据源

改变postgresql数据库运行地址

首先要清楚你想修改的是哪个psql地址,如果只是数据源的话在网页上改就可以了,如果要改储存用户数据的后端psql数据库,那么改query_runner/pg.py是没用的,应该改的是settings/__init__.py'中的

SQLALCHEMY_DATABASE_URI = os.environ.get(
"REDASH_DATABASE_URL", os.environ.get("DATABASE_URL", "postgresql:///postgres"))

字段,这个格式就跟datagrip中连接数据库的时候显示的格式有点相似。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值