开发好一个Django项目后,最终项目和数据库都要迁移到服务器上,但服务器上新建的数据库是没有数据的,

此时我们可以在Navicat工具中将本地数据库中的数据导入到服务器端的数据库中,但是当团队合作开发的时候,

如果每一个人都各自使用一个数据库,最终进行数据合并是不现实的,无法实现数据统一。

采用搭在阿里云上MySQL。这样开发的时候避免仓库中含有数据库文件,数据不能统一。

采用一个远端数据库,可以保证多人开发,共享一个数据库,实现数据统一。

实现步骤:

xshell 连接云主机:账户 用户密码

xshell下云主机中安装好mysql

设置mysql远程数据库账户 密码

登录数据库服务器:

为了能远程登陆Mysql数据库,需要打开访问权限:

进入Mysql后:

mysql> use mysql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> GRANT ALL PRIVILEGES ON *.* TO 用户名@'%' IDENTIFIED BY '数据库密码' WITH GRANT OPTION;

Query OK, 0 rows affected (0.03 sec)

mysql> commit;

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

mysql> exit;

Bye

再重启数据库

service mysql restart

这样就可以通过任何主机,用你设置的用户名,密码远程访问数据库。

Navicate 连接云数据库:在本地客户端管理

71a100fe600312978104a5e31f3e02a8.png

localhost改为云服务器IP地址,输入云端数据库账户密码,连接测试!

此此时会报错:无法连接

ada20e501feeea5832aa0eb52d6903c3.png

需要对服务器做一下配置:

1、用xshell连接云服务器ECS,修改/etc/mysql/my.cnf

或者 /etc/mysql/mysql.conf.d/mysqld.cnf

将bind-address = 127.0.0.1改为bind-address = 0.0.0.0。

2、在云服务器ECS中---安全组-----配置规则-----添加安全组规则

把3306端口加上去,才能连接到数据库!

737dead73cc868541c01b89dc40dff6a.png

以上修改完成以后,测试一下:

本地访问:mysql -u root -h 云服务器IP地址 -P 3306 -p密码

-h:阿里云ip地址

root:设置的用户

-P:端口号

-p后面为数据库密码

就可以连上远程数据库了!

再在Navicat中连接远程MySQL数据库:

把主机名或IP地址栏改为你的云服务器IP地址,端口3306,数据库密码

即可连接成功!

Django项目中远程连接数据库

在Django项目的settings.py中配置数据库:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'mysql',

'USER': 'root',

'PASSWORD': 'xxxx',

'HOST': '云服务器IP地址',

'PORT': '3306',

}

}

然后输入Python manage.py migrate来写入数据库

f9400c2a0c5093c420c8f7eff8970817.png

现在就把数据库的结构同步过去了!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐