首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django 500内部服务器错误- ImproperlyConfigured:错误加载MySQLdb模块:

Django 500内部服务器错误- ImproperlyConfigured:错误加载MySQLdb模块:
EN

Stack Overflow用户
提问于 2014-08-18 19:21:49
回答 2查看 2.7K关注 0票数 1

我刚开始使用MySQL作为Django的数据库。我遵循了许多不同的教程和文档,但是当我部署到生产服务器时,我仍然会得到一个500内部服务器错误。在我的开发机器上工作得很好。

我遗漏了什么?有什么设置是我应该改变的,还是我错过的一步?

谢谢

错误日志

代码语言:javascript
复制
[Mon Aug 18 19:23:10 2014] [error] [client 134.226.38.233]     return getattr(connections[DEFAULT_DB_ALIAS], item)
[Mon Aug 18 19:23:10 2014] [error] [client 134.226.38.233]   File "/var/www/bias_experiment/lib/python2.7/site-packages/django/db/utils.py", line 198, in __getitem__
[Mon Aug 18 19:23:10 2014] [error] [client 134.226.38.233]     backend = load_backend(db['ENGINE'])
[Mon Aug 18 19:23:10 2014] [error] [client 134.226.38.233]   File "/var/www/bias_experiment/lib/python2.7/site-packages/django/db/utils.py", line 113, in load_backend
[Mon Aug 18 19:23:10 2014] [error] [client 134.226.38.233]     return import_module('%s.base' % backend_name)
[Mon Aug 18 19:23:10 2014] [error] [client 134.226.38.233]   File "/var/www/bias_experiment/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
[Mon Aug 18 19:23:10 2014] [error] [client 134.226.38.233]     __import__(name)
[Mon Aug 18 19:23:10 2014] [error] [client 134.226.38.233]   File "/var/www/bias_experiment/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 17, in <module>
[Mon Aug 18 19:23:10 2014] [error] [client 134.226.38.233]     raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
[Mon Aug 18 19:23:10 2014] [error] [client 134.226.38.233] ImproperlyConfigured: Error loading MySQLdb module: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 2, 3, 'final', 0)

我的设置

  • 运行12.04.5 LTS的Ubuntu
  • Apache/2.2.22 (Ubuntu)
  • Python 2.7.3
  • virtualenv==1.7.1.2
  • Django==1.6
  • MySQL-python=1.2.3
  • mysql 14.14远端5.5.38,用于debian gnu (x86_64),使用readline 6.2

My settings.py

代码语言:javascript
复制
DATABASES = {
    'default': { 
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'django_db',                                       
        'USER': 'root',
        'PASSWORD': 'my_password',
        'HOST': '127.0.0.1',
        'PORT': '', 
    }
}

我已经在生产环境上创建了数据库。

代码语言:javascript
复制
CREATE DATABASE django_db;
Query OK, 1 row affected (0.01 sec) 
mysql>

然后运行syncdb。

代码语言:javascript
复制
(bias_experiment)Macintosh-2:src user$ python manage.py syncdb
Creating tables ...
Creating table django_admin_log
....
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-18 23:23:21

这一行:

代码语言:javascript
复制
ImproperlyConfigured: Error loading MySQLdb module: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 2, 3, 'final', 0) 

指示MysqlDB和MySQL之间可能存在版本不匹配。听起来像是查看它并重新安装您的依赖库解决了这个问题。

来更详细地描述这个问题:

在本例中,apt-get安装了MySQL==1.2.3。最新版本是MySQL==1.2.5。但是apt-get并没有找到它,所以使用以下方法完全删除MySQL=1.2.3:

代码语言:javascript
复制
sudo apt-get remove --purge python-mysqldb

然后通过pip重新安装

代码语言:javascript
复制
sudo pip install mysql-python

(请注意包名略有不同)

票数 1
EN

Stack Overflow用户

发布于 2015-05-18 22:20:21

为了帮助那些可能会犯同样错误的人:

我收到了相同的错误,但MySQL版本与预期的1.2.5相同。问题是,我将MySQLdb文件夹符号链接到项目的根文件夹中。通过将符号链接文件夹移动到保存Django设置的文件夹中,我能够修复这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25370553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档