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)")
可以是具有权限的东西吗?
提前感谢:)
答案 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',
}
}