iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >python链接mysql常见问题汇总
  • 746
分享到

python链接mysql常见问题汇总

常见问题链接python 2023-01-31 06:01:22 746人浏览 八月长安
摘要

python与Mysql一、安装mysqldb模块使用Python连接Mysql的前提,就是需要一个让python连接到Mysql的接口,这就是MySQLdb模块。验证是否已经安装了MySQLdb:=====================

pythonMysql
一、安装mysqldb模块
使用Python连接Mysql的前提,就是需要一个让python连接到Mysql的接口,这就是MySQLdb模块。

验证是否已经安装了MySQLdb:

==========================================================
d:\usr\local\Python25>python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] onwin32
Type "help", "copyright", "credits" or "license" for more infORMation.
>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named MySQLdb
==========================================================
如果有类似于上面的"No module named MySQLdb",表明MySQLdb尚未安装或安装的不成功!

MySQL 版本:5.0.67
下载地址:Http://dev.mysql.com/downloads/mysql/5.0.html#downloads
下载exe文件并安装

==========================================================

Python 版本:2.5
下载地址:http://www.python.org/download/releases/2.5.4/
下载msi文件并安装

MySQLdb版本: MySQLdb windows binary for Python 2.5
下载地址:http://biohackers.net/wikiattach/Python2(2e)5/p_w_uploads/MySQL-python.exe-1.2.1_p2.win32-py2.5.exe
参见:http://forums.mysql.com/read.PHP?50,129618,140611#msg-140611

常见问题:
1.无法定位程序输入点 mysql_server_init 于动态链接库 LIBMYSQL.dll 上。
----------------------------------------------------------------------------------------------------
D:\usr\local\Python25>python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\usr\local\Python25\Lib\site-packages\MySQLdb\__init__.py", line 19, in <module>
    import _mysql
ImportError: DLL load failed: 找不到指定的程序。
----------------------------------------------------------------------------------------------------
解决方法:把mysql安装目录的bin\libmySQL.dll文件复制到python安装目录的Lib\site-packages下

==========================================================

Python 版本:2.6
下载地址:http://www.python.org/download/releases/2.6.1/
下载msi文件并安装

MySQLdb版本: MySQL-python-1.2.2.win32-py2.6.exe
下载地址:http://home.netimperia.com/files/misc/MySQL-python-1.2.2.win32-py2.6.exe
参见:http://sourceforge.net/forum/forum.php?thread_id=2316047&forum_id=70460

常见问题:
1.ImportError: DLL load failed: 找不到指定的模块。
----------------------------------------------------------------------------------------------------
D:\usr\local\Python26>python
Python 2.6 (r26:66721, Oct  2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\usr\local\Python26\Lib\site-packages\MySQLdb\__init__.py", line 19, in <module>

    import _mysql
ImportError: DLL load failed: 找不到指定的模块。
----------------------------------------------------------------------------------------------------
解决方法:下载libmmd.dll(附件)和libguide40.dll(附件)两个dll文件并复制System32目录之下
参见:http://sourceforge.net/forum/message.php?msg_id=5613887

2.ImportError: DLL load failed: 找不到指定的模块。
----------------------------------------------------------------------------------------------------
D:\usr\local\Python26>python
Python 2.6 (r26:66721, Oct  2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
D:\usr\local\Python26\lib\site-packages\MySQLdb\__init__.py:34: DeprecationWarning: the setsmodule is deprecated
  from sets import ImmutableSet
----------------------------------------------------------------------------------------------------
解决方法:
1) 在文件中 "__init__", 注释掉:
from sets import ImmutableSet 
class DBapiSet(ImmutableSet): 
新增:
class DBAPISet(frozenset)

2) 在文件中"converters.py", 注释掉  from sets import BaseSet, Set 这一句话。

3) 在文件中"converters.py", 修改 "Set" 成为 "set" ( 只有两个地方需要修改):
大概 line 48: return Set([ i for i in s.split(',') if i ]) 》》 return set([ i for i in s.split(',') if i ])
大概 line 128: Set: Set2Str, 》》 set: Set2Str
参见:http://sourceforge.net/forum/message.php?msg_id=5808948


二、MySQLdb的使用。

引入我们需要的包
import MySQLdb

1.和数据库建立连接
conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable")
提供的connect方法用来和数据库建立连接,接收数个参数,返回连接对象.

比较常用的参数包括
host:数据库主机名.默认是用本地主机.
user:数据库登陆名.默认是当前用户.
passwd:数据库登陆的秘密.默认为空.
db:要使用的数据库名.没有默认值.
port:MySQL服务使用的tcp端口.默认是3306.
conn连接有两个重要的方法commit【提交新增和修改】,rollback【撤销新增或修改】

2.执行SQL语句获取返回值
//获取连接的游标
cursor=conn.cursor()
//查询
sql = "select * from 【table】"
//新增
sql = "insert into 【table】(字段,字段) values(值,值)"
//修改
sql = "update 【table】 set 字段 =‘值’where 条件 "
//删除
sql = "delete from 【table】 where 条件"
cursor.execute(sql)

返回值
cur.execute('select * from tables')
其返回值为SQL语句得到的行数,如:2L,表示2行。
然后,可以从该对象的fetchone或fetchall方法得到行信息。

获取行信息
指针对象的fetchone()方法,是每次得到一行的tuple返回值:
引用
>>> row=cur.fetchone()
>>> print row
('user1', '52c69e3a57331081823331c4e69d3f2e', 1000L, 1000L, '/home/FTP/user1', '')

指针对象的fetchall()方法,是得到一组tuple,其内容为由行信息组成的tuple值:
引用
>>> cur.scroll(0,'absolute')
>>> row=cur.fetchall()
>>> print row
(('user1', '52c69e3a57331081823331c4e69d3f2e', 1000L, 1000L, '/home/FTP/user1', ''), ('user2', '7e58d63b60197ceb55a1c487989a3720', 1000L, 1000L, '/home/FTP/user2', None))

移动指针
当使用fetchone()方法是,指针是会发生移动的。所以,若不重置指针,那么使用fetchall的信息将只会包含指针后面的行内容。
手动移动指针使用:
cur.scroll(int,parm)

含义为:
引用
int:移动的行数,整数;在相对模式下,正数向下移动,负值表示向上移动。
parm:移动的模式,默认是relative,相对模式;可接受absoulte,绝对模式。

修改数据
修改数据,包括插入、更新、删除。它们都是使用指针对象的execute()方法执行:
cur.execute("insert  into table (row1, row2) values ('111', '222')")
cur.execute("update  table set   row1 = 'test'  where  row2 = 'row2' ")
cur.execute("delete from  table  where row1 = 'row1' ")

因单引号“'”用于SQL语句中的标识,所以,python中的字符串需使用双引号括住。
此外,也可以使用python的“格式化字符串”写法,简化命令,例如:
cur.execute("update  table set   row1 = '%s'  where  row2 = '%s' " %('value1','value2'))

※请注意,'%s'的单引号是SQL语句的间隔符,'value1'的单引号是python的字符串间隔符,其含义是不同的。是否需要间隔符,以及使用双引号还是单引号作为间隔,需根据其含义决定。例如,还有:
cur.execute("update FTPUSERS set passwd=%s where userid='%s' " %("md5('123')",'user2'))

这里,paswd=%s是因SQL的md5()函数是不需要单引号间隔的;"md5('123')"是python的字符串中含有单引号,所以用双引号括住。

提交修改
一般情况下,MySQLdb模块会自动提交修改。但我们在更新数据后,手动运行一次:
conn.commit()

关闭数据库连接
需要分别的关闭指针对象和连接对象.他们有名字相同的方法
cursor.close()
conn.close()


参考链接:
http://www.cnblogs.com/sislcb/arcHive/2008/11/24/1339913.html
http://www.linuxfly.org/post/180/
http://www.3gmatrix.cn/4/viewspace-16757.html 

您可能感兴趣的文档:

--结束END--

本文标题: python链接mysql常见问题汇总

本文链接: https://www.lsjlt.com/news/189968.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python链接mysql常见问题汇总
    Python与Mysql一、安装MySQLdb模块使用python连接Mysql的前提,就是需要一个让python连接到Mysql的接口,这就是MySQLdb模块。验证是否已经安装了MySQLdb:=====================...
    99+
    2023-01-31
    常见问题 链接 python
  • 常见安全类问题汇总
    问题编号: 3385 问题主题: 思科nbar的一些疑惑 提问者: samelv 提问时间: 2006-3-29 10:32:37 提问内容: 1、数据包识别率的问题 nb...
    99+
    2023-01-31
    常见
  • C#中Response.Write常见问题汇总
    在C#中,Response.Write方法常见的问题汇总包括以下几个方面:1. 输出乱码:如果输出的内容包含非ASCII字符,可能会...
    99+
    2023-08-17
    C#
  • Oracle常见问题解决方案汇总
    1、Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务 数据库服务器崩了,而且尝试重启服务和重启机器都解决不了问题 打开cmd窗口 C:\Users\hxt&g...
    99+
    2024-04-02
  • vue3升级常见问题详细汇总
    目录Ⅰ、前言Ⅱ、解决兼容问题1、路由的创建方式2、路由的方法变化3、升级 vuex 到 4.x4、作用域  插槽语法修改5、具名插槽不能重复6、根挂载的变化7、模板 v-f...
    99+
    2023-03-07
    vue3更新 vue升级3.0 vue升级版本
  • Python常见的脚本汇总
    1、冒泡排序 lis = [56,12,1,8,354,10,100,34,56,7,23,456,234,-58] def sortport(): for i in range(len(lis)-1): fo...
    99+
    2023-01-30
    脚本 常见 Python
  • fastadmin使用学习中的常见问题汇总
    目录一、fastadmin后台能访问,前台路径错误 ,前台路径错误,后台又能访问。二、使用fastadmin随机生成的入口文件报模板不存在三、去掉表格中默认的搜索样式四、控制器方法中...
    99+
    2022-12-17
    fastadmin常见问题汇总
  • MySQL使用的常见问题解决与应用技巧汇总
    前言 在MySQL日常开发或者是维护中,有一些问题或是故障往往是难以避免的,如丢失密码、表损坏。在此总结一下常见的问题,以备今后所需。 一、 忘记 MySQL 的 root 密码 1. 登录到数据库所在的...
    99+
    2024-04-02
  • MySQL常见优化方案汇总
    目录思考sql优化的几个地方,我把他做了个分类,方便理解key_len计算方式简单介绍一、优化点1:字段优化覆盖索引尽量用二、优化点2:where优化1.尽量全值匹配2.最...
    99+
    2024-04-02
  • 初学者必须知道的MySQL数据库常见问题汇总
    本篇内容介绍了“初学者必须知道的MySQL数据库常见问题汇总”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • JavaScript常见手写题超全汇总
    目录前言1. 实现一个 compose 函数2. 实现一个 pipe 函数3. 实现一个 forEach 函数4. 实现一个 map 函数5. 实现一个 filter 函数6. 自定...
    99+
    2022-12-30
    js面试手写题 js手写代码 手写js
  • python编码问题汇总
    目录一、了解字符编码的知识储备1. 文本编辑器存取文件的原理(nodepad++,pycharm,word)2. python解释器执行py文件的原理 二、字符编码简介三、...
    99+
    2024-04-02
  • ARM64架构环境安装RPM包常见问题汇总
    工作|ARM64架构环境安装RPM包常见问题汇总 一 ARM架构安装RPM包思路 服务器市场X86架构系统一家独大,很多功能包的RPM包在官网几乎只有X86架构的,找不到ARM64架构,但你需要在AR...
    99+
    2023-09-30
    架构 运维 服务器
  • Python基础常见问题总结(一)
    1.__ foo 、foo_ 和 __foo__ 三者之间的区别是什么?__foo表示私有属性、_foo表示受保护的属性、__foo__表示Python自带的属性 2.请您简述Python编译的工作原理,PyCodeObject 和 Py...
    99+
    2023-01-31
    常见问题 基础 Python
  • MySQL count(*)统计总数问题汇总
    目录1. MyISAM存储引擎计数为什么这么快?2. 能不能手动实现统计总行数3. InnoDB引擎能否实现快速计数在日常开发工作中,我经常会遇到需要统计总数的场景,比如:统计订单总...
    99+
    2024-04-02
  • Python常问的100个面试问题汇总(上篇)
    目录前言python基础Q1.什么是Python?Q2.Python的主要功能是什么?Q3.Python中支持的数据类型有哪些?Q4.列表和元组有什么区别?Q5.什么是Python模...
    99+
    2023-01-16
    Python面试题 Python经典问题
  • Python常问的100个面试问题汇总(下篇)
    前言 如果你在寻找python工作,那你的面试可能会涉及Python相关的问题。 通过对网络资料的收集整理,本文列出了100道python的面试题以及答案,你可以根据需求阅读测试。 ...
    99+
    2023-01-16
    Python面试问题 经典问题 常问面试问题
  • MySQL——常见问题
      NULL和空值的区别 空值不占空间,NULL值占空间。当字段不为NULL时,也可以插入空值。 当使用 IS NOT NULL 或者 IS NULL 时,只能查出字段中没有不为NULL的或者为 NULL 的,不能查出空值。 判断NULL ...
    99+
    2023-09-29
    mysql 数据库
  • win8中IE10 Metro版常见问题及解决方法汇总
    如何在IE10中使用收藏夹 在 Windows 8 Consumer Preview 中使用IE收藏夹与使用之前版本的传统收藏夹不同。您可以将网站锁定至开始屏幕,或使用“新建选项卡”打开锁定的站点...
    99+
    2023-06-03
    win8 IE10 Metro 解决 问题 方法
  • 使用python-thrift问题汇总
    使用环境是Centos6.4,python版本2.7.3,thrift版本0.9.0。使用中遇到了以下问题:1. root:code for hash md5 was not found没有找到MD5的库,于是解释器又去寻找SHA1 SH...
    99+
    2023-01-31
    python thrift
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作