是否可以将本地 django 项目连接到 AWS EC2 上的 MySql 运行?如何?
Is it possible to connect local django project to MySql running on AWS EC2? How?
我尝试了什么:
- 在 EC2 实例上安装了 MySql 服务器。
- 在实例的安全组中添加了一个入站规则以从所有源通过 shh 连接
- 创建了数据库和用户
- 鉴于该用户使用
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
的所有权限
- 使用
django-admin startproject mysite
创建了一个 Django 项目并安装了 mysqlclient
- 在项目设置中,我将默认数据库从 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;
仍然没有 luck.Same 错误。
您还必须设置 MySQL 配置以允许它在 mysqld.cnf 文件中接受远程连接添加更改以下值。
[mysqld]
bind-address = 0.0.0.0
# skip-networking
然后重新启动 MySQL 服务。
并且您还必须在 EC2 实例
的安全组中添加应用程序端口
我尝试了什么:
- 在 EC2 实例上安装了 MySql 服务器。
- 在实例的安全组中添加了一个入站规则以从所有源通过 shh 连接
- 创建了数据库和用户
- 鉴于该用户使用
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
的所有权限
- 使用
django-admin startproject mysite
创建了一个 Django 项目并安装了 mysqlclient - 在项目设置中,我将默认数据库从 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;
仍然没有 luck.Same 错误。
您还必须设置 MySQL 配置以允许它在 mysqld.cnf 文件中接受远程连接添加更改以下值。
[mysqld]
bind-address = 0.0.0.0
# skip-networking
然后重新启动 MySQL 服务。
并且您还必须在 EC2 实例
的安全组中添加应用程序端口