Django pythonanywhere:拒绝用户访问';用户名'@';%';到数据库

Django pythonanywhere:拒绝用户访问';用户名'@';%';到数据库,django,pythonanywhere,Django,Pythonanywhere,我正在使用它部署Django项目。PythonyWhere的数据库设置如下: Connecting: Database host address: mysql.server Username: Username (just as an example) Your databases: Start a console on: Username$DBName (just as an example) ... 使用“manage.py migrate”命令设置数

我正在使用它部署Django项目。PythonyWhere的数据库设置如下:

Connecting: 
    Database host address: mysql.server
    Username: Username (just as an example)

Your databases:
    Start a console on: Username$DBName  (just as an example)
    ...
使用“manage.py migrate”命令设置数据库时,错误消息显示:

django.db.utils.OperationalError: (1044 "Access denied for user 'Username'@'%' to database 'DBName'")
文件
settings.py
中的数据库设置如下所示

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DBName',
        'USER': 'Username',
        'PASSWORD': 'password',
        'HOST': 'mysql.server',
        'PORT': '3306',
    }
}
我可以使用以下命令在控制台中运行mysql:

$ mysql -u Username -h mysql.server -p
当我输入以下命令时:

mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON DBName.* TO 'Username'@'Username$DBName' IDENTIFIED BY 'password' WITH GRANT OPTION;
我收到了错误消息:

ERROR 1044 (42000): Access denied for user 'Username'@'%' to database 'mysql'
“show databases;”命令显示没有名为“mysql”的数据库

当我输入以下命令时:

mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON DBName.* TO 'Username'@'Username$DBName' IDENTIFIED BY 'password' WITH GRANT OPTION;
我还收到了错误消息:

ERROR 1044 (42000): Access denied for user 'Username'@'%' to database 'DBName'

那么,如何设置数据库呢?

在Pythonywhere文档中找到了这一点,使用MySQL的数据库设置应为以下形式:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<your_username>$<your_database_name>',
        'USER': '<your_username>',
        'PASSWORD': '<your_mysql_password>',
        'HOST': 'mysql.server',
    }
}
数据库={
“默认值”:{
'ENGINE':'django.db.backends.mysql',
“名称”:“$”,
“用户”:“,
“密码”:“,
'HOST':'mysql.server',
}
}
如果您的用户名是say user,数据库是db,那么您的数据库名称应该是user$db,而不是db

类似地,要在控制台中访问数据库,请键入

mysql>使用用户$db

而不是

mysql>使用数据库