django.db.utils.OperationalError: (1046, '未选择数据库')
Posted
技术标签:
【中文标题】django.db.utils.OperationalError: (1046, \'未选择数据库\')【英文标题】:django.db.utils.OperationalError: (1046, 'No database selected')django.db.utils.OperationalError: (1046, '未选择数据库') 【发布时间】:2016-03-24 11:41:20 【问题描述】:遇到一个奇怪的错误。我在 mysql 中创建了一个数据库,将数据库设置为使用它。在我的 Django settings.py 中使用正确的设置。但是还是出现了没有选择数据库的错误。
我首先尝试:
python manage.py syncdb
得到这个回溯:
django.db.utils.OperationalError: (1046, 'No database selected')
settings.py:
DATABASES =
'default':
'ENGINE': 'django.db.backends.mysql',
'NAME': 'my_db',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
我错过了什么?
【问题讨论】:
对于遇到“未选择数据库”的其他人,我的问题是设置键不正确。我使用的是“数据库”而不是“名称”。这里不是同样的问题,但似乎配置有任何问题只是返回没有选择数据库,所以要非常小心一切都是正确的。 【参考方案1】:授予文件中提到的用户的访问权限
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
您无需授予所有权限。相应地修改。
【讨论】:
【参考方案2】:检查以确保您的数据库 my_db 存在于您的 MySQL 实例中。登录 MySQL 并运行;
show databases;
确保 my_db 存在。如果没有,请运行
create database my_db;
【讨论】:
它存在。因此,我对这个错误感到非常困惑。我的连接器有问题吗? 尝试将主机更改为空字符串,看看是否可行。您也可以尝试将主机更改为 127.0.0.1。 主机改成127.0.0.1后同样的错误存在。 你的 settings.py 文件中还有什么?它只是数据库信息吗?有一些 django 命令已经提前运行,django 在数据库中创建了它需要的附加表。需要运行的一个命令是,python manage.py migrate
这真的是一个标准设置的夹层项目。我尝试过使用不同的命令,例如你写的python manage.py migrate
和python manage.py syncdb
。真的很诡异,除了django.db.backends.mysql
之外应该还有什么可以用mysqlclient 1.3.7吗?以上是关于django.db.utils.OperationalError: (1046, '未选择数据库')的主要内容,如果未能解决你的问题,请参考以下文章