使用Django连接MySQL

4

这是我第一次使用Django进行项目开发..之前已经尝试过与SQLite的连接。但现在我正在使用Django的连接方式来连接MySQL,但是我遇到了以下错误...

D:\project\wogma>manage.py syncdb
Traceback (most recent call last):
  File "D:\project\wogma\manage.py", line 11, in <module>
    execute_manager(settings)

  File "C:\Python26\lib\site-packages\django\core\management\__init__.py", line
340, in execute_manager
    utility.execute()

  File "C:\Python26\lib\site-packages\django\core\management\__init__.py", line
295, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)

  File "C:\Python26\lib\site-packages\django\core\management\base.py", line 192,
 in run_from_argv
    self.execute(*args, **options.__dict__)

  File "C:\Python26\lib\site-packages\django\core\management\base.py", line 218,
 in execute
    self.validate()

  File "C:\Python26\lib\site-packages\django\core\management\base.py", line 246,
 in validate
    num_errors = get_validation_errors(s, app)

  File "C:\Python26\lib\site-packages\django\core\management\validation.py", lin
e 65, in get_validation_errors
    connection.validation.validate_field(e, opts, f)

  File "C:\Python26\lib\site-packages\django\db\backends\mysql\validation.py", l
ine 8, in validate_field
    db_version = connection.get_server_version()

  File "C:\Python26\lib\site-packages\django\db\backends\mysql\base.py", line 27
7, in get_server_version
    self.cursor()

  File "C:\Python26\lib\site-packages\django\db\backends\__init__.py", line 56,
in cursor
    cursor = self._cursor(settings)

  File "C:\Python26\lib\site-packages\django\db\backends\mysql\base.py", line 26
2, in _cursor
    self.connection = Database.connect(**kwargs)

  File "C:\Python26\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "C:\Python26\lib\site-packages\MySQLdb\connections.py", line 188, in __in
it__
    super(Connection, self).__init__(*args, **kwargs2)

_mysql_exceptions.OperationalError: (1049, "Unknown database 'd:/project/wogma/w
ogma'")

我在mysql中执行了以下命令。 我已经使用create database创建了wogma数据库,并授予了权限。 那问题是什么?

4个回答

7
您正在尝试指定一个文件路径下的数据库(这对于SQLite可以工作)。MySQL需要一个数据库名称(例如“wogma”)。您需要按照安装MySQL、创建新用户和数据库等说明操作。看起来您是在Windows上操作,所以我不能提供更多帮助。

19
请修理您键盘上的Shift Lock键。 - S.Lott

4
  1. 打开sql控制台并输入SHOW DATABASES;
  2. 如果出现wogma,请在您的设置中添加以下内容(您正在使用django 1.1):

    DATABASE_ENGINE = 'django.db.backends.mysql'

    DATABASE_NAME = 'wogma'

    DATABASE_HOST = '127.0.0.1'

    DATABASE_PORT = '3306'

  3. 如果没有出现,请在控制台中创建它:CREATE DATABASE wogma; 然后再次执行步骤。


3
尝试使用以下连接配置:

尝试使用以下连接配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'MY_DATABASE_NAME',
        'USER': 'root',
        'PASSWORD': 'MY_PASSWORD',
    }
}

但是首先,在你的MySQL中创建数据库。


0
根据上面的答案指示,下面的代码将无法工作。
    DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'MY_DATABASE_NAME',
        'USER': 'root',
        'PASSWORD': 'MY_PASSWORD',
    }
 }

你需要下载 MySQL Connector。 阅读 this 帖子来在 Django 2.1.x 中设置你的 MySQL 数据库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接