pythonmysqldb使用
importMySQLdb
B. 在Python3.5可以使用MySQL数据库吗如何安装MySQLdb模块呢
安装 MySQLdb 模块:
step1. 下载:wget
step2. 解压:tar zxvf MySQL-python-1.2.3.tar.gz
step3. 安装:cd MySQL-python-1.2.3python setup.py build
这里有报错:EnvironmentError: mysql_config not found
解决方法是:
首先找到 mysql_config 的位置find / -name mysql_config
找到之后 拷贝该路径/usr/local/mysql-5.7.10-osx10.9-x86_64/bin/mysql_config
然后修改 setup_posix.py 文件第 26 行:
改完之后保存退出 再次执行 python setup.py build这次就没有报错了然后执行 python setup.py install至此 MySQLdb 模块安装完毕
C. 如何用python连接mysql数据库
在 Python 语言环境下我们这样连接数据库。
In [1]: from mysql import connector
In [2]: cnx = connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")
但是连接数据库的背后发生了什么呢?
答案
当我们通过驱动程序(mysql-connector-python,pymysql)连接 MySQL 服务端的时候,就是把连接参数传递给驱动程序,驱动程序再根据参数会发起到 MySQL 服务端的 TCP 连接。当 TCP 连接建立之后驱动程序与服务端之间会按特定的格式和次序交换数据包,数据包的格式和发送次序由MySQL 协议规定。MySQL 协议:https://dev.mysql.com/doc/internals/en/client-server-protocol.html整个连接的过程中 MySQL 服务端与驱动程序之间,按如下的次序发送了这些包。
MySQL 服务端向客户端发送一个握手包,包里记录了 MySQL-Server 的版本,默认的授权插件,密码盐值(auth-data)。
2. MySQL 客户端发出 ssl 连接请求包(如果有必要的话)。
3. MySQL 客户端发出握手包的响应包,这个包时记录了用户名,密码加密后的串,客户端属性,等等其它信息。
4. MySQL 服务端发出响应包,这个包里记录了登录是否成功,如果没有成功也会给出错误信息。
D. 如何使用Python3.4连接MySQL
python3发布以来,获取了广大程序员们的差评,说不稳定,又是不兼容什么的,不过差评归差评,python3既然已经发布,肯定是个趋势,但在python3.4里面,使用原来python2.7的mysqldb已经不能连接mysql数据库了,比较令人纠结,不过我们可以使用pymysql,来完成连接mysql的重任,步骤如下:
序号描述
1去github上下载pymysql的安装包pymysql
2解压到某个盘符下
3打开cmd窗口(win环境下),进入pymysql的根目录下执行命令,python setup.py install4在程序里,导入pymysql
5开始连接数据库
数据库操作的API文档连接:http://legacy.python.org/dev/peps/pep-0249/代码如下:
__author__ = 'qindongliang'
#导入pymysql的包
import pymysql
try:
#获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库conn=pymysql.connect(host='localhost',user='root',passwd='qin',db='person',port=3306,charset='utf8')cur=conn.cursor()#获取一个游标
cur.execute('select * from person')
data=cur.fetchall()
for d in data :
#注意int类型需要使用str函数转义
print("ID: "+str(d[0])+' 名字: '+d[1]+" 性别: "+d[2])cur.close()#关闭游标
conn.close()#释放数据库资源
except Exception :print("发生异常")
结果如下:
D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/mysql.pyID: 1 名字: 秦天 性别: 男
ID: 2 名字: 王晶 性别: 女
Process finished with exit code 0
原文 http://qindongliang1922.iteye.com/blog/2096512补充说明:
mysqldb作为python连接mysql数据库的工具,但是mysqldb目前支撑的版本较低,安装失败。所以才尝试pymysql,这个比较简单易用软件下载地址:
python3.2.5:https://www.python.org/ftp/python/3.2.5/python-3.2.5.msipymysql3.0.5:https://pypi.python.org/packages/source/P/PyMySQL3/PyMySQL3-0.5.tar.gzmysql:http://www.phpstudy.net/phpstudy/phpStudyLite.zip(为了方便安装,我这里选择phpstudy)1、python安装目录设定为d:/python32
2、pymysql安装方法为:解压下载的文件,在cmd中运行: python setup.py install。
检验安装安装是否成功的方法:import pymysql 。 如果不报错 说明安装成功。
3、mysql安装目录为D:/phpStudy/MySQL。为避免更多配置问题,可在启动phpstudy后,将其设为系统服务4、基本操作:
(1)导入pymysql: import pymysql
(2)连接数据库: conn=pymysql.connect(host='localhost',user='root',passwd='root',db='ere',charset='utf8') 务必注意各等号前面的内容!charset参数可避免中文乱码(3)获取操作游标:cur=conn.cursor()
(4)执行sql语句,插入记录:sta=cur.execute("insert 语句") 执行成功后sta值为1。更新、删除语句与此类似。
(5)执行sql语句,查询记录:cur.execute("select语句") 执行成功后cur变量中保存了查询结果记录集,然后再用循环打印结果:
for each in cur:
print(each[1].decode('utf-8')) # each[1] 表示当前游标所在行的的第2列值,如果是中文则需要处理编码
E. 如何使用python对数据库进行操作
你可以访问Python数据库接口及API查看详细的支持数据库列表。不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。
DB-API 是一个规范. 它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口 。
Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。
Python DB-API使用流程:
引入 API 模块。
获取与数据库的连接。
执行SQL语句和存储过程。
关闭数据库连接。
什么是MySQLdb?
MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。
如何安装MySQLdb?
为了用DB-API编写MySQL脚本,必须确保已经安装了MySQL。复制以下代码,并执行:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
如果执行后的输出结果如下所示,意味着你没有安装 MySQLdb 模块:
Traceback (most recent call last):
File "test.py", line 3, in <mole>
import MySQLdb
ImportError: No mole named MySQLdb
F. 如何用python安装mysqldb
如何用python的pip安装mysqldb
python2.7和python3.4你可以看成是两个软件,你在一个里装了,另一个里当然不能用,你需要在python3.4里也安装mysqldb才可以,你可以通过pip install mysql-python,或者python3 setup.py install 来安装。
到官方下载MySQL for Python
然后解压,打开README:
里面有安装过程:
$ tar xfz MySQL-python-1.2.1.tar.gz
$ cd MySQL-python-1.2.1
$ # edit site.cfg if necessary
$ python setup.py build
$ sudo python setup.py install # or su first
G. python mysqldb 执行这句sql为啥报错
把SQL打印出来,放到MySQL客户端执行看一下。
H. 使用python 中的MySQLdb模块读取数据,每次都要创建新的连接吗
不用重新创建,DBUtil之类的有连接池的都是会保持一定数量的连接,不会每次都重新创建。另外,如果表里增加新的结果,肯定会看到。我这里测试是正常的:
import MySQLdb
import time
connMy = MySQLdb.connect(host='localhost',user='test',passwd='test',db='test')
while True:
cur = connMy.cursor()
cur.execute('select id from test order by id desc LIMIT 5')
ls = [row for row in cur]
print ls
cur.close()
time.sleep(10)
connMy.close()
运行之后:
[(5L,), (4L,), (3L,), (2L,), (1L,)]
[(5L,), (4L,), (3L,), (2L,), (1L,)]
[(5L,), (4L,), (3L,), (2L,), (1L,)]
[(6L,), (5L,), (4L,), (3L,), (2L,)]
[(7L,), (6L,), (5L,), (4L,), (3L,)]
...
新增加的记录都可以看到。你检查一下SQL语句有没有问题,还有插入新记录的时候是否提交了会话之类的。本身的Python程序是没有问题的