前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python调用MySQL模块初试

Python调用MySQL模块初试

作者头像
jeanron100
发布2018-03-21 17:42:55
1.8K0
发布2018-03-21 17:42:55
举报

学Python喊了很长时间了,总是因为各种各样的理由搁置,昨天想起来前同事推荐过一本Python的书《Python核心编程》第二版,就火速买了一本,Python的学习也算是个开始了。

当然了,我学习还是蛮浮躁的,总是喜欢循序渐进,深入浅出那种,希望短时间的学习能够看到成效,比如做出几个demo,写出几个算法之类的。

所以我把书先放下,换了个思路来想,如果我学习一门语言,怎么样会和目前的工作结合起来更多呢,bingo,那就调用MySQL吧。

其实mysql模块有点类似于JDBC的一种角色,提供了访问数据库的一个接口,通过调用相应的接口来访问和操作数据库。那么这个模块就相当于一个jdbc的jar包一般,我们就需要做相应的配置,在Linux里面我们就下载安装即可。

下载的链接是:https://pypi.python.org/pypi/MySQL-python/

目前最新的版本是1.2.5,我们选择源码版本,在Linux下安装。

其实安装很简单,就是一个python setup.py install即可。

但是实际操作的时候还是有一点问题。

第一个是提示mysql_config不存在,这个主要就是环境变量中访问不到,我们配置一下即可,比如添加软链接。

ln -s /usr/local/mysql_5.7/bin/mysql_config /usr/bin/mysql_config 然后继续调用下面的命令。 python setup.py install 这次的错误有点奇怪,看起来是gcc的过程报错了,找不到两个文件。 gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/local/mysql_5.7/include -I/usr/include/python2.6 -c _mysql.c -o build/temp.linux-x86_64-2.6/_mysql.o _mysql.c:29:20: error: Python.h: No such file or directory _mysql.c:40:26: error: structmember.h: No such file or directory _mysql.c:74: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token _mysql.c:75: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token 这个可以通过安装软件包python-devel来解决。 yum install python-devel 安装好之后,就是做一个基本的验证,看看模块是否可以正常的加载。

当然还是有点曲折,报错了。

>>> import MySQLdb /usr/lib64/python2.6/site-packages/MySQL_python-1.2.5-py2.6-linux-x86_64.egg/_mysql.py:3: UserWarning: Module _mysql was already imported from /usr/lib64/python2.6/site-packages/MySQL_python-1.2.5-py2.6-linux-x86_64.egg/_mysql.pyc, but /U01/soft1/soft/MySQL-python-1.2.5 is being added to sys.path Traceback (most recent call last): File "<stdin>", line 1, in <module> File "MySQLdb/__init__.py", line 19, in <module> import _mysql File "build/bdist.linux-x86_64/egg/_mysql.py", line 7, in <module> File "build/bdist.linux-x86_64/egg/_mysql.py", line 6, in __bootstrap__ ImportError: libmysqlclient.so.20: cannot open shared object file: No such file or directory >>> 这个错误还是这个链接访问不了,我们重新配置一下。 ln -s /usr/local/mysql_5.7/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20 再次尝试加载模块,如下的方式说明就是成功了。 >>> import MySQLdb >>> 接下来就是调用MySQL了。

就简单些一个调用的脚本,连接到数据库然后创建表,插入数据,删除,退出。

#coding=utf-8 import MySQLdb conn = MySQLdb.connect(host='127.0.0.1',port=22804,user='root', passwd='',db ='test',) cur = conn.cursor() #创建数据表 cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))") #插入一条数据 cur.execute("insert into student values('2','Tom','xxxx','9')") #修改查询条件的数据 cur.execute("update student set class='xxxx' where name = 'Tom'") #删除查询条件的数据 cur.execute("delete from student where age='9'") cur.close() conn.commit() conn.close()

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档