插件窝 干货文章 PyCharm 中运行 Django 迁移脚本时出现 MySQL 连接错误:如何解决?

PyCharm 中运行 Django 迁移脚本时出现 MySQL 连接错误:如何解决?

MySQL 检查 错误 database 550    来源:    2025-03-31

解决 PyCharm 中 Django 迁移脚本的 MySQL 连接错误

当在 PyCharm 中运行 Django 迁移时遇到 MySQL 连接错误,通常有以下几个常见原因和解决方案:

常见错误类型及解决方案

1. 认证失败错误

django.db.utils.OperationalError: (1045, "Access denied for user 'username'@'localhost' (using password: YES)")

解决方案: - 检查 settings.py 中的数据库配置: python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'your_database_name', 'USER': 'your_username', 'PASSWORD': 'your_password', 'HOST': 'localhost', # 或你的 MySQL 服务器地址 'PORT': '3306', # 默认是 3306 } } - 确保 MySQL 用户有访问权限: sql GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES;

2. 数据库不存在错误

django.db.utils.OperationalError: (1049, "Unknown database 'database_name'")

解决方案: - 先在 MySQL 中创建数据库: sql CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3. 连接被拒绝错误

django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on 'localhost'")

解决方案: - 确认 MySQL 服务正在运行 - 检查防火墙设置是否阻止了连接 - 尝试将 HOST'localhost' 改为 '127.0.0.1'

4. 驱动相关错误

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.

解决方案: - 安装 MySQL 客户端库: bash sudo apt-get install python3-dev default-libmysqlclient-dev build-essential # Ubuntu/Debian - 安装 Python MySQL 客户端: bash pip install mysqlclientbash pip install pymysql 如果使用 pymysql,需要在 settings.py 同目录的 __init__.py 中添加: python import pymysql pymysql.install_as_MySQLdb()

PyCharm 特定配置检查

  1. 检查 PyCharm 使用的 Python 解释器

    • 确保与项目使用的虚拟环境一致
    • File > Settings > Project: your_project > Python Interpreter
  2. 检查环境变量

    • 确保 PyCharm 运行配置中包含必要的环境变量
    • Run > Edit Configurations > Environment variables
  3. 数据库工具插件

    • 确保已安装 Database Tools 插件
    • 可以尝试通过 PyCharm 的数据库工具直接连接 MySQL 进行测试

其他通用建议

  1. 检查 MySQL 服务器日志获取更详细的错误信息
  2. 尝试使用命令行直接连接 MySQL 进行测试: bash mysql -u username -p -h hostname database_name
  3. 如果使用 Docker,确保容器端口映射正确且容器正在运行
  4. 对于时间敏感的应用,检查时区设置是否一致

完整排查步骤

  1. 确认 MySQL 服务正在运行
  2. 使用命令行工具测试直接连接
  3. 检查 Django 的数据库配置
  4. 验证数据库用户权限
  5. 检查 Python MySQL 驱动是否正确安装
  6. 检查 PyCharm 的 Python 解释器和环境变量设置

如果以上步骤仍不能解决问题,可以提供具体的错误信息以便进一步诊断。