简体   繁体   English

从Django连接到MySQL

[英]Connecting to MySQL from Django

its my first project with django..i already tried the connection with sqlite.but now m using django's connection with mysql nm getting following error... 它是我的第一个项目与django..i已经尝试了与sqlite的连接。但现在使用django的连接与mysql nm得到以下错误...

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'")

i did the commands in mysql as follows..i already created the wogma database just using create database ni granted the priviliges..in mysql. 我在mysql中执行了如下命令..我已经创建了wogma数据库,只需使用create database ni授予priviliges..in mysql。 whts the prb?? 什么prb?

You are trying to specify a database at a file path (which would work for SQLite). 您正在尝试在文件路径中指定数据库(这适用于SQLite)。 MySQL needs a database name (eg 'wogma'). MySQL需要一个数据库名称(例如'wogma')。 You'll have to follow the instructions to install MySQL, create a new user and database etc. It appears you're on Windows, so I can't help any more than that. 你必须按照说明安装MySQL,创建一个新用户和数据库等。看来你在Windows上,所以我不能帮助。

  1. open a sql console and type SHOW DATABASES; 打开一个sql控制台并输入SHOW DATABASES;
  2. if wogma appear just put this in your settings (you are using django 1.1): 如果出现wogma只是把它放在你的设置中(你使用的是django 1.1):

    DATABASE_ENGINE = 'django.db.backends.mysql' DATABASE_ENGINE ='django.db.backends.mysql'

    DATABASE_NAME = 'wogma' DATABASE_NAME ='wogma'

    DATABASE_HOST = '127.0.0.1' DATABASE_HOST ='127.0.0.1'

    DATABASE_PORT = '3306' DATABASE_PORT ='3306'

  3. if not appear just create it in this console CREATE DATABASE wogma ; 如果没有出现只是在这个控制台创建它CREATE DATABASE wogma ; and make the steps again. 并再次采取措施。

Try with this connection configuration: 尝试使用此连接配置:

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

But First , create the database in your mysql. 首先 ,在mysql中创建数据库。

As directed by above answers , the below code will not work 按照上述答案的指示,以下代码不起作用

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

You would have to download MySQL Connector . 您必须下载MySQL Connector Read this post to setup your MySQL database in Django 2.1.x 阅读这篇文章,在Django 2.1.x中设置MySQL数据库

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM