4
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

4 回答 4

7

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

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

最后运行你的syncdb。

./manage.py 同步数据库

于 2014-06-20T21:37:13.343 回答
6

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

create database mydatabase charset utf8;您应该在 mysql 提示符下预先创建数据库。

于 2012-06-16T15:16:16.710 回答
0

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

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

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

SELINUX=禁用

于 2012-06-16T15:09:12.420 回答
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',
    }
}
于 2019-08-06T06:40:59.490 回答