Flask应用连接MySQL出现拒绝访问错误(使用密码:否)
解决Flask MySQL连接时“拒绝访问,使用密码:否”的问题
嘿,我一眼就瞅到问题所在了——你的数据库配置键名写错了!这就导致Flask的MySQL扩展根本没读到你设置的密码,连接数据库时自然没带上密码,才会弹出“拒绝访问,使用密码:否”的提示。
看你这段配置代码:
app.config['MySQL_HOST'] = 'localhost' app.config['MySQL_USER'] = 'root' app.config['MySQL_PASSWORD'] = '****' app.config['MySQL_DB'] = 'myflaskapp' app.config['MySQL_CURSORCLASS'] = 'DictCursor'
Flask-MySQL(不管是flask-mysqldb还是其他主流扩展)只会识别全大写的配置键,你现在写的MySQL_HOST是首字母大写后面小写,扩展根本不认这个键,等于没配置密码。
给你修正后的代码:
app = Flask(__name__) # 修正配置键为全大写,确保扩展能正确读取 app.config['MYSQL_HOST'] = 'localhost' app.config['MYSQL_USER'] = 'root' app.config['MYSQL_PASSWORD'] = '****' app.config['MYSQL_DB'] = 'myflaskapp' app.config['MYSQL_CURSORCLASS'] = 'DictCursor' # 别忘了正确初始化MySQL(以flask-mysqldb为例) from flask_mysqldb import MySQL mysql = MySQL(app)
另外给你几个额外的排查点,以防万一:
- 先在终端用
mysql -u root -p测试登录,确认你的root密码确实正确,并且允许从localhost访问。 - 如果用的是其他MySQL扩展,去查一下它的官方文档,确认配置键的命名规则(不过大部分都是全大写)。
- 如果密码里有特殊字符,试着用单引号或双引号包裹住,避免解析出错。
内容的提问来源于stack exchange,提问作者kristof
相关产品推荐
相关产品推荐

