我知道以前曾有人问过类似的问题,但似乎没有一个解决方案有效。
我使用 pythonanywhere 构建了 django 项目,最初我只是按照 tangowithdjango 教程使用了 sqlite3 数据库。现在我实际上想让数据库在线工作,但我遇到了各种各样的错误。
我按照 https://help.pythonanywhere.com/pages/UsingMySQL/ 创建了一个新数据库,然后我在设置中输入了以下内容:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'ofekih$theofekfoundationdb',
'USER': 'ofekih',
'PASSWORD': '<my_sql_password>',
'HOST': 'ofekih.mysql.pythonanywhere-services.com',
}
}
然后,我在线打开一个控制台并运行:python manage.pysyncdb,这给了我一个很长的错误消息,结尾为:
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'ofekih'@'ip-10-61-196-73.ec2.internal' (using password: YES)")
然后我检查了我的访问权限,在我的 mysql 数据库中打开在线控制台并运行:show grants;这返回了包含以下行的表:
GRANT ALL PRIVILEGES ON `ofekih$theofekfoundationdb`.* TO 'ofekih'@'%'
这非常奇怪,因为之前的错误消息表示匹配相同语句的用户的访问被拒绝。
同时,回到我正在开发代码的本地计算机,使用 settings.py 中的新数据库运行 python manage.py runserver,它等待很长时间才出现另一条错误消息,结尾为:
django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on 'ofekih.mysql.pythonanywhere-services.com' (110)")
我情不自禁地觉得自己忽略了一些非常简单的事情,如果有比我更熟练的人能够帮助我,我将不胜感激。
提前致谢!
最佳答案
原来我的密码是错误的。确保不要使用反斜杠 () 来尝试转义字符串中的字符。
关于mysql - _mysql_exceptions.OperationalError : (1045, "Access denied for user ' <用户名>'@' ip-10-61-196-73.ec2.internal'(使用密码:YES)“),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37040890/