Django连接远程mysql数据库

时间:2021-11-29 08:26:02

最近在做一款软件,用django搭建的后台管理系统,Android端需要的数据在一*立的数据库服务器上存放着,需要做的工作是:

(1)连接远程mysql数据库

(2)为远程数据库中的表建立model


(1)django连接远程数据库,

第一步配置setting.py中的DATABASES,令数据库的HOST为数据库服务器的IP,

第二步,开放远程数据库的访问权限,操作如下:

在数据库服务器上登上mysql

mysql -u root -p

开放数据库权限,

>grant all PRIVILEGES on yjc.* to root@'219.246.178.xxx' identified by '123456';

上面这句话的意思就是将yjc这个数据库的所有权开放给用户root,用户root只能在使用219.246.178.xxx时才能登录,并且密码为123456;

如果想把所有数据库的权限开放给用户root,并且不限制用户使用什么ip登录,就需要改成下面的命令:

>grant all PRIVILEGES on *.* to root@'%' identified by '123456';


执行如下命令

>flush privileges;

重启mysql服务

/etc/init.d/mysql restart


现在可以测试一下,使用mysql -u root -h 数据库服务器IP -p进行远程登录,如果出现连接失败,可以打开/etc/mysql/my.cnf,注释掉

#bind-address           = 127.0.0.1


到此为止,连接远程数据库的工作已经做好.

(2)以为django中的数据表都与models.py中的class一一对应,但是我们在连接远程服务器后,models.py中并不存在对应的model,但是一一去创建又太麻烦,所以,django为我们提供了工具来做这件事情:

执行命令:

python manage.py inspectdb >mysite/models.py

这样model.py中就自动创建了对应的model