SQLAlchemy迁移:远程连接MySQL数据库权限不足
使用 SQLAlchemy 进行数据库迁移时,即使本地工具(如cmd或Navicat)能成功远程连接MySQL数据库,却可能出现权限不足错误,提示“(1045, “access denied for user 'db_user'@'121.29.178.187' (using password: yes)")”。
问题根源
该错误通常并非密码错误那么简单。即使其他客户端能正常连接,SQLAlchemy的连接方式或MySQL服务器配置也可能导致此问题。
密码核验: 再次确认SQLAlchemy连接字符串中使用的密码是否完全正确。
新建用户: 如果密码无误,尝试创建一个新的数据库用户。使用拥有CREATE USER权限的用户执行以下SQL语句:
CREATE USER 'db_user'@'121.29.178.187' IDENTIFIED BY 'new_password'; GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'121.29.178.187'; FLUSH PRIVILEGES;
调整主机设置: MySQL默认仅允许用户从其创建主机连接。如果SQLAlchemy连接并非来自该主机,需将数据库用户的host值修改为%,允许所有主机连接。
插件验证: 确保SQLAlchemy使用了mysql_native_password插件。
重启服务: 重启MySQL服务使配置生效。
如果以上方法无效,建议检查MySQL错误日志,或使用MySQL命令行工具进行更细致的权限排查。
以上就是SQLAlchemy迁移报错“访问被拒绝”:如何解决远程连接MySQL数据库权限不足问题?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号