开发好一个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 连接云数据库:在本地客户端管理
localhost改为云服务器IP地址,输入云端数据库账户密码,连接测试!
此此时会报错:无法连接
需要对服务器做一下配置:
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端口加上去,才能连接到数据库!
以上修改完成以后,测试一下:
本地访问: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来写入数据库
现在就把数据库的结构同步过去了!