【发布时间】:2014-10-17 16:44:19
【问题描述】:
我无法通过我的烧瓶 webapp 连接到我在数字海洋上的 sql 服务器。我使用flask-sqlalchemy将mysql数据库绑定到Flask。
我可以通过myipaddress:5000/phpmyadmin的phpmyadmin接口访问mysql服务器
因为我使用的是 Nginx(我将它绑定到端口 80)。将 Apache 绑定到端口 5000。所以我的 phpmyadmin 界面可以在
访问myipaddress:5000/phpmyadmin
在我的烧瓶应用程序中,我指定了
SQLALCHEMY_DATABASE_URI ='mysql://root:password@myipaddress:5000/databasename'
当我尝试使用带有 db.create_all() 的 shell 在我的数据库上创建表时 - 它只是没有响应。光标永远闪烁,然后我在几分钟后得到我在标题上引用的操作错误
我能够在我的本地开发机器上运行相同的设置。所以我知道这不是烧瓶配置问题,而只是 mysql 访问问题。我在 digitalocean 上安装了我的 webapp(不确定 mysql 服务器是否在防火墙后面或类似的东西使其无法访问
在
/etc/mysql/my.cnf
对于 mysql_d 部分下的绑定地址,我尝试了所有可能的组合并重新启动了 mysql 服务器,但没有成功
我尝试了 localhost, 127.0.0.1, 127.0.0.1:5000, myipaddress 作为绑定地址(也尝试将其注释掉),但没有任何结果。
我还尝试从 mysql 命令行获取表属性上的用户 current_user,它被列为两者的 root@localhost
来自这个帖子:Lost connection to MySQL server at 'reading initial communication packet', system error: 0;我知道它与防火墙有关,但不知道如何纠正。
Anyidea 如何将我的烧瓶应用程序连接到 mysql 服务器?任何帮助将不胜感激
【问题讨论】:
标签: mysql flask flask-sqlalchemy digital-ocean