1049,“未知数据库'数据库'”django mysql无法连接

时间:2012-06-16 14:50:42

标签: python mysql django amazon-ec2 database-connection

Exception Type: OperationalError at /
Exception Value: (1049, "Unknown database 'database'")

目前我试过这个:

DATABASES = {
   'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'database',                      # Or path to database file if using sqlite3.
        'USER': 'root',                      # Not used with sqlite3.
        'PASSWORD': '****',                  # Not used with sqlite3.
        'HOST': '/var/lib/mysql/database/',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '80',                      # Set to empty string for default. Not used with sqlite3.
    }
}

如果我没有指定主机,我会收到此错误:

OperationalError at /

(2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/database' (13)")

可以是具有权限的东西吗?

提前感谢:)

4 个答案:

答案 0 :(得分:5)

PORT不是Web服务器端口,而是数据库端口,对于MySQL是3306,而HOST是数据库服务器的IP或名称。您可能需要127.0.0.1

您应该事先使用mysql提示符中的create database mydatabase charset utf8;创建数据库。

答案 1 :(得分:5)

首先,在mysql上创建数据库。 其次,编辑你的默认连接。

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

最后运行你的syncdb。

  

./ manage.py syncdb

答案 2 :(得分:0)

我认为您不能通过名称数据库创建数据库。所以请先检查以下内容......

1)是否安装了mysql-server并使用适当的授权创建了数据库所有权限?如果您已这样做,请检查后续步骤

2)我不了解亚马逊,但这个错误在Redhat和Fedora的旧版Linux发行版中很常见。一个选项就是这样做 通过将/ etc / sysconfig / selinux中的SELINUX行设置为Disabled:

SELINUX =禁止

答案 3 :(得分:0)

在终端上登录mysql并创建一个数据库

mysql -u root -p

CREATE DATABASE dbname;

USE dbname;

然后在setting.py文件上

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dbname',
        'USER': 'root', #Mysql username
        'PASSWORD': 'password', #mysql password
        'HOST': 'localhost',   # Or an IP Address that your DB is hosted on
        'PORT': '3306',
    }
}