Ran*_*ang 5 django pythonanywhere
我正在使用www.pythonanywhere.com来部署我的Django项目.pythonanywhere的数据库设置如下:
Connecting:
Database host address: mysql.server
Username: Username (just as an example)
Your databases:
Start a console on: Username$DBName (just as an example)
...
Run Code Online (Sandbox Code Playgroud)
使用"manage.py migrate"命令设置数据库时,出现错误消息:
django.db.utils.OperationalError: (1044 "Access denied for user 'Username'@'%' to database 'DBName'")
Run Code Online (Sandbox Code Playgroud)
文件settings.py中的DATABASES设置如下.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DBName',
'USER': 'Username',
'PASSWORD': 'password',
'HOST': 'mysql.server',
'PORT': '3306',
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令在控制台中运行mysql:
$ mysql -u Username -h mysql.server -p
Run Code Online (Sandbox Code Playgroud)
当我输入以下命令时:
mysql> use mysql;
Run Code Online (Sandbox Code Playgroud)
我收到了错误消息:
ERROR 1044 (42000): Access denied for user 'Username'@'%' to database 'mysql'
Run Code Online (Sandbox Code Playgroud)
"显示数据库;" 命令显示没有名为"mysql"的数据库.
当我输入以下命令时:
mysql> GRANT ALL PRIVILEGES ON DBName.* TO 'Username'@'Username$DBName' IDENTIFIED BY 'password' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)
我也收到了错误消息:
ERROR 1044 (42000): Access denied for user 'Username'@'%' to database 'DBName'
Run Code Online (Sandbox Code Playgroud)
那么,我该如何设置数据库呢?
在pythonanywhere文档中发现这个,使用MySQL的数据库设置应该是以下形式:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '<your_username>$<your_database_name>',
'USER': '<your_username>',
'PASSWORD': '<your_mysql_password>',
'HOST': 'mysql.server',
}
}
Run Code Online (Sandbox Code Playgroud)
如果您的用户名是user而database是db,那么您的数据库名称应该是user $ db,而不是db.
同样,要在您键入的控制台中访问数据库
mysql> use user $ db;
并不是
mysql>使用db;
| 归档时间: |
|
| 查看次数: |
2557 次 |
| 最近记录: |