Python Flask如何通过数据库服务器访问本地主机?连接报错求助
Flask MySQL连接错误解决方法
核心问题:数据库URI格式错误
你的SQLALCHEMY_DATABASE_URI拼接逻辑错误,正确的MySQL URI格式是:mysql+pymysql://<用户名>:<密码>@<主机地址>/<数据库名>
你当前代码把用户名和密码之间用了/,导致SQLAlchemy错误地将root(用户名)解析成了数据库主机地址,这就是报错Can't connect to MySQL server on 'root'的直接原因。
修正config.py中的URI拼接
修改Config类里的SQLALCHEMY_DATABASE_URI行,把用户名和密码之间的/替换为:,同时用f-string让拼接更清晰:
import os basedir = os.path.abspath(os.path.dirname(__file__)) class Config(object): HOST = str(os.environ.get("DB_HOST")) DATABASE = str(os.environ.get("DB_DATABASE")) USERNAME = str(os.environ.get("DB_USERNAME")) PASSWORD = str(os.environ.get("DB_PASSWORD")) # 修正后的URI格式 SQLALCHEMY_DATABASE_URI = f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOST}/{DATABASE}' SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_RECORD_QUERIES = True
额外检查项
- 确认本地MySQL服务确实在
127.0.0.1:3307端口运行,可通过MySQL客户端或telnet 127.0.0.1 3307测试连通性 - 确认
root用户拥有本地连接的MySQL权限 - 确认
bookinghotel_db数据库已创建 - 确保
.env文件的变量被正确加载,若未自动加载,可在项目入口文件添加:from dotenv import load_dotenv load_dotenv()
内容的提问来源于stack exchange,提问作者WeFacaa
相关产品推荐
相关产品推荐

