python远程链接mysql服务器

使用python链接至远程的mysql服务器python


python链接mysql使用MYSQLdb,首先要去下载对应版本的MYSQLdb,分享一个我本身下的mysql

连接: http://pan.baidu.com/s/1o8OXU58 密码: 27jv
sql

下载并安装后数据库

第一步:windows

import MYSQLdb  看是否能成功导入。服务器

第二步:app

conn=MySQLdb.connect(
    host='10.10.104.71',
    port=3306,
    user='root',
    passwd='23455',
    db='malware'
)ide

host后为ip地址,若用本地mysql则填为localhostthis

port 端口号,默认为3306spa

user 用户名

passwd 密码

db 你所要用的数据了名称

第三步:
cur=conn.cursor()

咱们对数据库的经常使用操做都同个这个cursor对象来进行操做

经过cur.execute()来执行语句;这里操做不在概述。

写个我在用的时候出现的问题:

在用python将数据插入到表中时,会遇到格式化插入以下:

cur.execute(
    "INSERT INTO person(name,age,type,time,time2,setType,appearanceCount)"  "VALUES ('%s',%d,'%s','%s','%s','%s',%d)"%(name,age,type,time,time2,setType,appearanceCount)
)
这里的name,type等等都是字符串类型的变量,age是int类型变量,可是再插入时如果直接  用%s,就会报错,加上引号就没问题.


另外操做远程数据库须要远程数据库对本地进行受权:

若没有受权会出现如下提示Host 'xxxxxx' is not allowed to connect to this MySQL server

1,在windows下运行输入mstsc,进行远程登陆

2,远程登陆后,cd到mysql的bin目录,输入mysql -u root -p   输入密码进行登陆

3,建立远程登录用户并受权

grant all PRIVILEGES on test_db.* to root@'192.168.1.101'  identified by '23455';

all PRIVILEGES 表示赋予全部的权限给指定用户,这里也能够替换为赋予某一具体的权限,例如select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。

test_db.* 表示上面的权限是针对于哪一个表的,test_db指的是数据库,后面的 * 表示对于全部的表,由此能够推理出:对于所有数据库的所有表受权为“*.*”,对于某一数据库的所有表受权为“数据库名.*”,对于某一数据库的某一表受权为“数据库名.表名”。

root 表示你要给哪一个用户受权,这个用户能够是存在的用户,也能够是不存在的用户。

192.168.1.101   表示容许远程链接的 IP 地址,也就是你本地的ip地址。若是想不限制连接的 IP 则设置为“%”便可。

123456 为用户的密码。

4,flush privileges; 


这样就能够操做成功了