我可以通过外壳正确地看到本地设置已正确应用。但是,当它与数据库同步时,我发现没有正确地应用它,就会发生错误。在
以下是主settings.py
:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'kidsmamma',
'USER': 'kidsmamma',
'PASSWORD': 'kidsmamma@pass!@#$',
'HOST': '',
'PORT': '',
'TEST_COLLATION': 'utf8_unicode_ci'
}
}
. . .
# LOCAL SETTING
try:
from local_settings import *
print DATABASES
except ImportError:
pass
这是local_settings.py
:
当我运行./manage.py shell
时:
(kidsmamma)[09:04 오후 kidsmamma@dev-server ~/kidsmamma]$ ./manage.py shell
{'default': {'ENGINE': 'django.db.backends.mysql', 'NAME': 'test_kidsmamma', 'test_COLLATION': 'utf8_unicode_ci', 'HOST': '', 'USER': 'test', 'PASSWORD': 'test@pass!@#$', 'PORT': ''}}
Python 2.7.3 (default, Sep 26 2013, 20:03:06)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
keyboardInterrupt
>>>
在执行./manage.py syncdb
之后,错误如下所示:
(kidsmamma)[09:04 오후 kidsmamma@dev-server ~/kidsmamma]$ ./manage.py syncdb
{'default': {'ENGINE': 'django.db.backends.mysql', 'NAME': 'test_kidsmamma', 'test_COLLATION': 'utf8_unicode_ci', 'HOST': '', 'USER': 'test', 'PASSWORD': 'test@pass!@#$', 'PORT': ''}}
Syncing...
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/django/core/management/base.py", line 285, in execute
output = self.handle(*args, **options)
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/django/core/management/base.py", line 415, in handle
return self.handle_noargs(**options)
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/south/management/commands/syncdb.py", line 89, in handle_noargs
db.connection_init()
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/south/db/mysql.py", line 183, in connection_init
cursor = self._get_connection().cursor()
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/django/db/backends/__init__.py", line 157, in cursor
cursor = self.make_debug_cursor(self._cursor())
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/django/db/backends/__init__.py", line 129, in _cursor
self.ensure_connection()
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/django/db/backends/__init__.py", line 124, in ensure_connection
self.connect()
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/django/db/utils.py", line 99, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/django/db/backends/__init__.py", line 124, in ensure_connection
self.connect()
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/django/db/backends/__init__.py", line 112, in connect
self.connection = self.get_new_connection(conn_params)
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 435, in get_new_connection
conn = Database.connect(**conn_params)
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/home/kidsmamma/.virtualenvs/kidsmamma/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 193, in __init__
super(Connection, self).__init__(*args, **kwargs2)
django.db.utils.OperationalError: (1045, "Access denied for user 'kidsmamma'@'localhost' (using password: YES)")
如果我想在没有本地设置的情况下连接到数据库,没有问题,但是导入本地设置后会发生什么,我找不到原因。在
我使用的是django版本1.6.1。 如果您需要更多信息,请留言。 我希望你能帮助我!在
首先从MySQL客户端命令行连接到MySQL服务器:
输入MySQL服务器的
^{pr2}$root
用户的root
密码,命令行提示符应更改为:现在尝试列出所有当前数据库:
并尝试通过以下方式列出mysql的所有用户:
现在考虑它们的输出,根据
DATABASES
的local_settings.py
设置,如果您的test
用户不存在,请使用您的密码创建它:如果您的
test_kidsmamma
数据库不存在,请创建它:然后将
test_kidsmamma
数据库的所有权限授予test
用户:好的,现在您可以再试一次
python manage.py syncdb
。在请注意,您也可以尝试在
settings.py
中设置DATABASES
相关问题 更多 >
编程相关推荐