use*_*125 23 python mysql django
所以我通过这个资源学习Django(1,3,1,'final',0):http://www.djangobook.com/en/2.0/chapter05/
我通过Synaptic安装了'mysql-server'和'python-mysqldb'.我更改了settings.py中的相关设置.
上面提到的这本书告诉我们从manage.py shell运行:
>>> from django.db import connection
>>> cursor = connection.cursor()
Run Code Online (Sandbox Code Playgroud)
运行这些命令后出现此错误:
OperationalError: (1044, "Access denied for user ''@'localhost' to database 'mydb'")
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/django/db/backends/__init__.py", line 250, in cursor
cursor = self.make_debug_cursor(self._cursor())
File "/usr/lib/python2.7/dist-packages/django/db/backends/mysql/base.py", line 322, in _cursor
self.connection = Database.connect(**kwargs)
File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 187, in __init__
super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (1044, "Access denied for user ''@'localhost' to database 'mydb'")
Run Code Online (Sandbox Code Playgroud)
当我第一次安装时,MySQL确实要求我设置root密码,这会在这里使用吗?或者是别的什么?
mat*_*eek 28
您的用户无权访问数据库.使用以下命令设置数据库.
DROP DATABASE IF EXISTS `mydb`;
CREATE DATABASE `mydb`
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
USE 'mysql';
GRANT ALL PRIVILEGES ON mydb.* TO 'mydb_user'@'localhost' IDENTIFIED BY 'your_password'
WITH GRANT OPTION;
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
此外,您需要具有足够的权限才能运行它.保存为script.sql然后,
$mysql -u root -p < script.sql
Run Code Online (Sandbox Code Playgroud)
而不是在settings.py上,您需要确保正确设置数据库设置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb',
'USER': 'mydb_user',
'PASSWORD': 'your_password',
'HOST': '',
'PORT': '',
}
}
Run Code Online (Sandbox Code Playgroud)
和
python manage.py syncdb
Run Code Online (Sandbox Code Playgroud)
你完成了