MySQLdb简介

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。同样MySQLdb也是Python 连接 MySQL 的一个第三方模块

MySQLdb安装

window下安装

1、在http://www.codegood.com/downloads下载MySQLdb相对应的执行文件进行安装就可以

2、利用pip进行安装(http://www.lfd.uci.edu/~gohlke/pythonlibs/)安装MySQLdb之前先要安装wheel,执行pip install wheel命令进行安装,

然后,执行pip install MySQL_python-1.2.5-cp27-none-win32.whl    ,如果是安装64位的,需要把这个文件名改为“MySQL_python-1.2.5-cp27-none-any.whl”

linux下安装

1、利用pip进行安装

 pip install MySQL-python 

在安装的过程中可能会报错,如下图(可能是依赖没安装,以下就是安装依赖的部分)

1>安装 mysql-devel(这个过程中还可能报错)

yum -y install mysql-devel

2>添加源

cd /etc/yum.repos.d/ 

rpm -ivh http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm 

3>继续安装依赖

yum install yum-utils
yum install libmysqlclient-dev
yum-complete-transaction

4>最后安装

yum -y install mysql-devel

yum install python-devel

2、源码安装

参考:http://www.cnblogs.com/zengkefu/p/5624837.html

MySQLdb使用

引入 API 模块。
获取与数据库的连接。
执行SQL语句和存储过程。
关闭数据库连接。

一、连接数据库

MySQLdb提供了connect方法用来和数据库建立连接,接收数个参数,返回连接对象:

conn=MySQLdb.connect(host="localhost",user="root",passwd="jb51",db="test",charset="utf8")

比较常用的参数包括(更多关于参数的信息可以查这里 http://mysql-python.sourceforge.net/MySQLdb.html):

host:数据库主机名.默认是用本地主机
user:数据库登陆名.默认是当前用户
passwd:数据库登陆的秘密.默认为空
db:要使用的数据库名.没有默认值
port:MySQL服务使用的TCP端口.默认是3306
charset:数据库编码

二、简单使用

import MySQLdb
#连接数据库
db=MySQLdb.connect(host="localhost",user="root",passwd="",db="apwd_center",charset="utf8")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
#形成sql语句
sql = 'select * from apk_download_info limit 10'
# 使用execute方法执行SQL语句
cursor.execute(sql)
# 使用 fetchone() 方法获取一条数据库。
data = cursor.fetchone()
# 关闭数据库连接
db.close()

三、在工作中为了方便运用,可以用类实现数据库操作

#!/usr/bin/python
# coding:utf-8 import MySQLdb class SQLdb(object):
'''
支持插入、更新、删除、查询(获取所有)操作
在不需要的时候需要手动释放db资源
''' def __init__(self, host=None, username=None, password=None, dbname=None):
if host is None and username is None and password is None and dbname is None:
self.host = "localhost"
self.username = "root"
self.password = "123456"
self.dbname = "apwd_center"
else:
self.host = host
self.username = username
self.password = password
self.dbname = dbname
self.max_connect_cnt = 20
self.__conndb()
self.Error = False # 连接数据库
def __conndb(self):
connect_cnt = 0
while True:
try:
self.db = MySQLdb.connect(self.host, self.username, self.password, self.dbname, charset='utf8')
except Exception, e:
# 当连接过多的时候或者其他异常的时候则sleep 1秒则重新连接
# time.sleep(1) #这个可以注释掉
connect_cnt += 1
if connect_cnt < self.max_connect_cnt:
pass
else:
raise e
else:
break
self.cursor = self.db.cursor() # 装饰器函数保证更新数据的时候,连接OK,如果连接不正确重新连接
def reconnectdb(func):
def wrapfunc(self, sql=''):
try:
self.db.ping()
except:
self.__conndb()
self.Error = False
return func(self, sql)
return wrapfunc # 插入数据
@reconnectdb
def insertdb(self, sql):
try:
self.cursor.execute(sql)
self.db.commit()
except Exception, e:
# Rollback in case there is any error
print "Error: unable to insertdb!"
self.db.rollback()
self.Error = True # 更新数据
@reconnectdb
def updatedb(self, sql):
try:
self.cursor.execute(sql)
self.db.commit()
except Exception, e:
# Rollback in case there is any error
print "Error: unable to updatedb!"
self.db.rollback()
self.Error = True # 获取数据
@reconnectdb
def fechdb(self, sql):
try:
self.cursor.execute(sql)
results = self.cursor.fetchall()
return results
except Exception, e:
print "Error: unable to fecth data"
self.Error = True # 删除数据
@reconnectdb
def deldb(self, sql):
try:
self.cursor.execute(sql)
self.db.commit()
except:
# Rollback in case there is any error
print "Error: unable to deldb!"
self.db.rollback()
self.Error = True # 关闭数据
def closedb(self):
try:
self.db.close()
except:
print "数据库已关闭,无需关闭" if __name__ == '__main__': db = SQLdb()
sql = "select * from phishing_info where phishing_site = 'http://wap.inbch.cc';"
result = db.fechdb(sql)
print result
print len(result)

使用MySQLdb操作Mysql数据库的更多相关文章

  1. Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

    这里的前提是windows上已经安装了MySQL数据库,且配置完成,能正常建表能操作. 在此基础上仅仅需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了.仅仅有1M ...

  2. python操作三大主流数据库(1)python操作mysql①windows环境中安装python操作mysql数据库的MySQLdb模块mysql-client

    windows安装python操作mysql数据库的MySQLdb模块mysql-client 正常情况下应该是cmd下直接运行 pip install mysql-client 命令即可,试了很多台 ...

  3. Python MySQLdb模块连接操作mysql数据库实例_python

    mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...

  4. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  5. Mysqldb连接Mysql数据库(转)

    python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库 ...

  6. python操作mysql数据库增删改查的dbutils实例

    python操作mysql数据库增删改查的dbutils实例 # 数据库配置文件 # cat gconf.py #encoding=utf-8 import json # json里面的字典不能用单引 ...

  7. python操作mysql数据库的常用方法使用详解

    python操作mysql数据库 1.环境准备: Linux 安装mysql: apt-get install mysql-server 安装python-mysql模块:apt-get instal ...

  8. 通过mysqlclient操作MySQL数据库

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...

  9. 【转】python操作mysql数据库

    python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库 ...

随机推荐

  1. Mac 下载安装MySQL

    step 1. 从官网上下载MySQL Community Server step 2. 安装MySQL step 3. 配置mysql和mysqladmin的alias $ vim ~/.bashr ...

  2. 使用validator-api来验证spring-boot的参数

    作为服务端开发,验证前端传入的参数的合法性是一个必不可少的步骤,但是验证参数是一个基本上是一个体力活,而且冗余代码繁多,也影响代码的可阅读性,所以有没有一个比较优雅的方式来解决这个问题? 这么简单的问 ...

  3. 【知识学习】如何寻找真实IP

    1.多地点ping查询IP,如果都一样可能没有使用cdn,如果有cdn,尝试海外地点ping查询IP 2.ping一下没有WWW的域名,可能存在真实IP.比如www.baidu.com设置了cdn,那 ...

  4. mina.net 梳理

    LZ最近离职,闲着也是闲着,打算梳理下 公司做的是电商,CTO打算把2.0系统用java 语言开发,LZ目前不打算做java,所以 选择离职.离职前,在公司负责的最后一个项目 供应链系统. 系统分为 ...

  5. 原生js实现数据双向绑定

    最近接触了vue,在谈到vue等等的mvvm框架之前,先了解什么是数据双向绑定以及如何利用原生JS实现数据双向绑定 单向数据绑定 指先把模板写好,然后把模板和数据(数据可能来自后台)整合到一起形成HT ...

  6. gsoap创建webservice服务简单教程

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] WebServicesoapgsoap 使用gsoap创建webservice服务 下载gsop 准备待导出的服务接口定义文件比 ...

  7. 一个想法照进现实-《IT连》创业项目:创业时该不该用新手程序员

    前言: 距离上一篇文章,转眼已然一个多月了,这段时间没出来和大伙汇报创业的进度,怪我了. 最近又感冒了,已经一个多星期了,还在感冒中,不过感冒也不能偷懒了,每天都有大把的事情等着我解决~~~ 不过今天 ...

  8. 罪恶的SEO优化

    1. 基础概念开始 SEO,搜索引擎优化.概括来说就是针对分析搜索引擎的网站收录以及评价规律,来对网站的结构,内容以及其他因素作出一些合理调整,使得网站更容易被搜索引擎收录,并且能够尽量排在搜索引擎自 ...

  9. 对象克隆(clone)实例详解

    <?php class Staff { public $name; public $age; public $salary; public function __construct($name, ...

  10. jenkins 用户名密码忘记

    进入c盘--用户 在本地用户的目录下找到.jenkins目录,里面有一个config.xml; 打开后,删除其中的 " <useSecurity>true</useSecu ...