最近在做一款软件,用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