远程访问数据库

意义

为什么要远程访问数据库?其实我也不知道。百度说:…… 好的其实并没有百度到。简单的说,我们把数据存在一台电脑,一般只能由这台电脑访问数据库,但这往往不能满足我们的需求。所以远程访问数据库成为了一项我们需要掌握的技术。(没错,说了这么久,我还是不太明白他的意义)下面,我们开始来介绍如何远程连接数据库与可能遇到的问题。

远程访问数据库

首先,我们在被访问的数据主机上进行配置。在Django的settings进行配置

DATABASES = {
        'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'd_name',              #数据库名
        'USER': 'root',
        'PASSWORD': '111222',
        'HOST': '192.168.235.72',      #本机IP
        'PORT': 3306,
    }
}

注意:访问的主机和被访问的主机必须在同一个局域网
另外,我们还需要开启远程访问数据权限。首先进入到数据库

mysql -u root -p

输入密码,进入数据库。然后开启权限。输入

grant all PRIVILEGES on * . * to root@’%’ identified by ‘密码’;

注意:其中为密码可以为空。建议设为数据库的密码。
再输入

flush privileges;

再重启数据库

/etc/init.d/mysql restart

如果不行要使用超级权限。

sudo /etc/init.d/mysql restart

如果连接失败,则

sudo vim /etc/mysql/my.cnf

#bind-address = 127.0.0.1

注释掉。如果vim没安装,则输入

sudo apt-get install vim

进入cnf文件后,先找到 #bind-address = 127.0.0.1这一行,按 i ,即可插入。再按 Esc 退出,最后按 :wq 保存。

这样基本上完成被访问主机的设置。

接下来,我们就可以在其他电脑远程访问数据库了。在这里我们可以建一个py文件来连接数据库。

import MySQLdb
conn = MySQLdb.connect(host="IP",user="root",passwd="密码",db="d_name")             
                               # 其中IP为被访问主机IP,d_name为数据库名
conn.select_db("d_name")
cursor = conn.cursor()
cursor.execute("数据库语句")   # 具体的数据库操作语句
jg = cursor.fetchall()          
print jg                       # 输出操作结果
cursor.close()        
conn.close()

注意:由于编码问题中文会出现乱码,在代码中这一行中修改

conn = MySQLdb.connect(host="IP",user="root",passwd="密码",db="d_name",charset="utf8")   

就可以解决乱码问题了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值