2010-07-31 62 views
0

我使用Macports设置了Mysql5,mysql5-server和py26-mysql。然后我启动了mysql服务器,并能够启动提示mysql5Django MySql设置

在我的settings.py中,我将database_engine更改为“mysql”,并将“dev.db”放入database_name中。

由于数据库尚不存在,我将用户名和密码留空。

当我跑python manage.py syncdb,Django的产生错误

“django.core.exceptions.ImproperlyConfigured:错误加载MySQLdb的模块:动态模块没有定义初始化函数(init_mysql)`

如何解决这个?我必须先创建数据库吗?这是别的吗?

+2

您是否使用也来自MacPorts的Python版本?通常情况下,您无法将系统版本的Python与MacPorts获取的扩展模块结合使用。 – 2010-07-31 03:41:30

+0

不,我正在使用自己安装的python 2.6。当我使用Pinax时,我也有虚拟环境工作。我应该从macports安装python 2.6吗?还要别的吗? – Ali 2010-07-31 03:51:09

回答

1

你需要安装MySQLdb的:http://sourceforge.net/projects/mysql-python/

这可能是根据您的设置一个痛苦的过程。请参阅其他讨论的SO关于MySQLdb的安装Mac OS X上:

How to install MySQLdb (Python data access library to MySQL) on Mac OS X?

编辑:对不起,脱脂过去,你已经通过py26 MySQL的安装MySQLdb的事实,但这个错误似乎指向的东西,去该安装错误。我在Mac OS X上遇到了很多与MySQLdb有关的问题,总是有些不同,我必须做才能使它工作。

1

syncdb不会为您创建数据库 - 它只会创建您的架构中不存在的表。您需要:

  • 创建一个用户'拥有'数据库(root是一个不好的选择)。
  • 用该用户创建数据库。
  • 使用正确的数据库名称,用户和密码更新Django数据库设置。
+0

当我从mysql提示符创建数据库时,它在哪里存储数据库?我如何找到它的路径? – Ali 2010-07-31 16:34:37

+1

@Ali,这取决于你的操作系统和你的配置文件。在大多数Unix上,您可以在/ var/lib/mysql下找到数据库文件。有关更多详细信息,请参阅:http://dev.mysql.com/doc/refman/5.5/en/installation-layouts.html – 2010-07-31 18:37:07