千家信息网

python连接数据库操作MySQL

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,参考:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00139143513181
千家信息网最后更新 2026年10月31日python连接数据库操作MySQL

参考

:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001391435131816c6a377e100ec4d43b3fc9145f3bb8056000


http://www.cnblogs.com/fnng/p/3565912.html



一 模块

  • mysql-connector-python:是MySQL官方的纯Python驱动;

  • MySQL-python:是封装了MySQL C驱动的Python驱动。

可以把两个都装上,使用的时候再决定用哪个:

$ pip install  mysql-connector-pythonpip install  MySQL-python

或者 使用yum安装(包名我忘记了 可以是使用yum search mysql去找)

yum install MySQL-python



测试是否按照好的驱动

#!/usr/bin/env python#coding:utf-8import systry:    import MySQLdb    print "MySQL python drivier is ok!"except Exception, e:    print e    sys.exit(1)finally:    sys.exit(1)


二、数据库中的表

show create table net_data; 可以查看


CREATE TABLE `net_data` (  `_id` int(11) NOT NULL AUTO_INCREMENT,  `create_date` datetime NOT NULL,  `province` varchar(64) NOT NULL,  `city` varchar(64) NOT NULL,  `net_type` enum('CTC','CNC','CMC','JK') NOT NULL,  `med` float NOT NULL,  `loss` float NOT NULL,  PRIMARY KEY (`_id`)) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;


三 先看插入的实例吧


作用,连接数据库插入一条数据


数据库插入一条数据

import MySQLdb........def insert_into_mysql(info):    conn= MySQLdb.Connect(            host='localhost',            port = 3306,            user='root',            passwd='12qwaszx',            db ='netmap',            charset='utf8',            )    cur = conn.cursor()    sqli = "insert into net_data (create_date,province,city,net_type,med,loss) values(%s,%s,%s,%s,%s,%s)"    cur.execute(sqli,(datetime.now(),'上海','上海','CTC','23','0'))    conn.commit()    cur.close()    conn.close()




同时插入多条数据

#info type is list 列表def insert_into_mysql(info):    conn= MySQLdb.Connect(            host='localhost',            port = 3306,            user='root',            passwd='12qwaszx',            db ='netmap',            charset='utf8',            )    cur = conn.cursor()    sqli = "insert into net_data (create_date,province,city,net_type,med,loss) values(%s,%s,%s,%s,%s,%s)"    cur.executemany(sqli,(info))    conn.commit()    cur.close()    conn.close()




四、查询实例(完成程序的一部分,完成的是一个统计报表发送的邮件的程序)

#!/usr/bin/env python#encoding=utf8#by cuizhiliang at 2016-04-29from datetime import datetime, timedeltaimport timefrom jinja2 import Templatefrom sendmail import SendHtmlEmailimport MySQLdbimport os,sysreload(sys)sys.setdefaultencoding("utf-8")g= {    'host': '127.0.0.1',    'port': 3306,    'user': 'zabbix',    'password': 'zabbix',    'db':'zabbix',}now= datetime.now()yesterday = now - timedelta(1)yest_clock = (datetime.now()  -timedelta(1)).strftime('%s')data = {}def select_mysql(cmd):    conn= MySQLdb.Connect(            host= g['host'],            port= g['port'],            user= g['user'],            passwd= g['password'],            db =g['db'],            charset='utf8',            )    #print cmd    cur = conn.cursor()    cur.execute(cmd)    res =cur.fetchall()    return res#zabbix 上用户列表def get_user_info():    cmd="select userid, alias,  name, type  from users;"    user_list = []    user_list= list(select_mysql(cmd))    print user_list    return user_listif __name__ == "__main__":        data["user"]= get_user_info()


五、注意:

1 插入数据库中文乱码 连接数据的字符集 一定要设定

charset='utf8'


2 不惯数据库中的字段是datetime类型还是int类型,在插入的时候都传为%s 字符串类型,类型对我们是透明了,模块会自动处理类型!


3 模块在mac中可能会出错 MySQLdb


报错:

Traceback (most recent call last):

File "ping_info.py", line 12, in

import MySQLdb

File "/Library/Python/2.7/site-packages/MySQLdb/__init__.py", line 19, in

import _mysql

ImportError: dlopen(/Library/Python/2.7/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib

Referenced from: /Library/Python/2.7/site-packages/_mysql.so

Reason: p_w_picpath not found



解决方法,因为是C语言开发驱动,所有依赖mysql客户端模块

sudo find / -name "libmysqlclient.18.dylib"

/usr/local/mysql-5.6.24-osx10.8-x86_64/lib/libmysqlclient.18.dylib

sudo cp /usr/local/mysql-5.6.24-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib



数据 数据库 类型 驱动 模块 字符 实例 时候 程序 上海 两个 乱码 作用 同时 多条 字段 字符串 字符集 官方 客户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 亿人帮互联网科技有限公司 深圳九邦互联网科技有限公司 华服互联网科技怎么样 科技互联网产品 科技金融是不是互联网金融 互联网和科技创新 互联网中国科技 礼当家互联网科技 互联网与新科技 中国互联网科技发展 开启互联网科技时代小说 西藏七维空间互联网科技有限公司 汽车互联网创新科技园 洛阳昕诺飞互联网科技有限公司 互联网金融科技展 无锡工业互联网科技有限公司 第三届互联网大会安防黑科技 安徽九吞吴互联网科技有限公司 东风日产互联网科技公司叫什么 现代科技的标志之一的互联网 互联网科技行业发展 互联网最新的科技有限公司 互联网科技的 阿大互联网科技有限公司 中和天地互联网科技有限公司 城市宝互联网科技有限公司 互联网领先科技宣传片 保山互联网科技靠谱吗 10位科技互联网大佬 上海互联网科技园景观
0