【发布时间】:2013-08-08 03:14:53
【问题描述】:
无法连接到数据库。
用户名和密码正确。我尝试了几种组合。我已经使用'mysql://user:pass@localhost:8889/db-name' 验证了我的SQLALCHEMY_DATABASE_URI,但无法连接。我可以使用 mysql 命令行实用程序毫无问题地连接。我什至尝试使用没有密码的用户名。
Flask 应用详情 - config.py
import os
basedir = os.path.abspath(os.path.dirname(__file__))
CSRF_ENABLED = True
SQLALCHEMY_DATABASE_URI = 'mysql://datadmin:password@localhost:8889/db-name'
WHOOSH_BASE = os.path.join(basedir, 'whoosh')
_初始化_.py
import os
from flask import Flask, render_template, jsonify, request
from flask.ext.sqlalchemy import SQLAlchemy
from config import basedir
app=Flask(__name__)
app.config.from_object('config')
db = SQLAlchemy(app)
from app import views, models
堆栈跟踪
File ".../site-packages/MySQLdb/connections.py", line 187, in __init__
super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (OperationalError) (1045, "Access denied for user 'datadmin'@'localhost' (using password: YES)") None None
通过命令行连接
user@hostname:~$ mysql -u datadmin -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.29 Source distribution
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
任何人有任何提示或知道如何找出问题所在?
【问题讨论】:
-
没有足够的细节。请添加错误的完整堆栈跟踪,并提供一个会话副本,该副本显示您用于从
mysql访问的命令行参数。当然,您可以用假密码替换真实密码。 -
检查 mysql 是否正在运行。您使用的是什么操作系统?错误信息是什么?请添加更多信息以便我们为您提供帮助
-
OSX 10.7.5 上的 MAMP。 MySQL 正在运行,因为我可以同时连接 mysql 命令行实用程序以及访问 phpmyadmin。
-
我添加了更多细节。如果您需要其他帮助,请告诉我,感谢您的帮助!
-
@frankV u,先生。这条线:
WHOOSH_BASE = os.path.join(basedir, 'whoosh')救了我的命。万一有人在读这个。我有这个错误,其中一个查询会去:SELECT (...) FROM (...) WHERE null我指定了WHOOSH_BASE,就像你做的那样,瞧,我的文本搜索又可以工作了。用我永恒的灵魂之爱感谢你。
标签: mysql sqlalchemy flask flask-sqlalchemy