0

我尝试了什么:

  • 在 EC2 实例上安装了 MySql 服务器。
  • 在实例的安全组中添加了一个入站规则以从所有源通过 shh 进行连接
  • 创建数据库和用户
  • 鉴于该用户的所有权限使用GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
  • django-admin startproject mysite使用并安装了 mysqlclient创建了一个 Django 项目
  • 在项目设置中,我将默认数据库从 SQLite 更改为
{
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dbtest',
        'USER': 'root',
        'HOST': '{IPv4 Public IP of the Instance}',
        'PASSWORD': 'password',
}

现在当我运行python manage.py runserver它给我错误

django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'xxx.xx.xxx.xxx' (using password: YES)")

然后,我还使用以下命令授予了该特定 IP 的所有权限:GRANT ALL PRIVILEGES ON *.* TO 'root'@'xxx.xx.xxx.xxx' WITH GRANT OPTION;

仍然没有运气。同样的错误。

4

1 回答 1

0

您还必须设置 MySQL 配置以允许它在 mysqld.cnf 文件中接受远程连接添加更改以下值。

[mysqld]
bind-address    = 0.0.0.0
# skip-networking

然后重启 MySQL 服务。

并且您还必须在 EC2 实例的安全组中添加应用程序端口

于 2020-07-22T11:43:43.787 回答