Python配置mysql的教程(推荐)


Posted in Python onOctober 13, 2017

Linux系统自带Python,且根据系统自带资源来对python配置mysql;安装需要已配置好正确的yum源;

在python未配置mysql的情形下,直接import MySQLdb的提示如下

>>> import MySQLdb
 Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 ImportError: No module named MySQLdb

Linux系统中没有mysql-python的rpm安装包,这个资源需要从网上下载:

https://sourceforge.net/projects/mysql-python

目前主流使用Python2.6或Python2.7版本,下载为 MySQL-python-1.2.3c1.tar.gz

下载后上传到Linux机器,放入非中文目录

tar -xf MySQL-python-1.2.3c1.tar.gz,解压目录如下

[root@localhost home]# cd MySQL-python-1.2.3c1/
[root@localhost MySQL-python-1.2.3c1]# ll
总用量 240
drwxr-xr-x. 5 root root  89 10月 12 12:27 build
-rw-r--r--. 1 tianF enosoft 59580 3月 31 2009 ChangeLog
drwxr-xr-x. 2 root root  57 10月 12 12:27 dist
drwxr-xr-x. 2 tianF enosoft 58 3月 31 2009 doc
-rw-r--r--. 1 tianF enosoft 9716 2月 6 2009 ez_setup.py
-rw-r--r--. 1 tianF enosoft 17989 2月 25 2007 GPL
-rw-r--r--. 1 tianF enosoft 2935 3月 4 2007 HISTORY
-rw-r--r--. 1 tianF enosoft 605 2月 11 2007 MANIFEST
-rw-r--r--. 1 tianF enosoft 272 3月 9 2009 MANIFEST.in
-rw-r--r--. 1 tianF enosoft 2098 3月 31 2009 metadata.cfg
-rw-r--r--. 1 tianF enosoft 75431 3月 31 2009 _mysql.c
drwxr-xr-x. 3 tianF enosoft 211 10月 12 12:28 MySQLdb
-rw-r--r--. 1 tianF enosoft 2306 4月 5 2006 _mysql_exceptions.py
-rw-r--r--. 1 root root  3791 10月 12 12:28 _mysql_exceptions.pyc
drwxr-xr-x. 2 tianF enosoft 90 3月 31 2009 MySQL_python.egg-info
-rw-r--r--. 1 tianF enosoft 1755 3月 31 2009 PKG-INFO
-rw-r--r--. 1 tianF enosoft 3203 4月 5 2006 pymemcompat.h
-rw-r--r--. 1 tianF enosoft 6696 10月 17 2008 README
-rw-r--r--. 1 tianF enosoft 380 3月 31 2009 setup.cfg
-rw-r--r--. 1 tianF enosoft 951 3月 8 2009 setup_common.py
-rw-r--r--. 1 root root  1520 10月 12 12:27 setup_common.pyc
-rw-r--r--. 1 tianF enosoft 2947 3月 8 2009 setup_posix.py
-rw-r--r--. 1 root root  2977 10月 12 12:27 setup_posix.pyc
-rw-r--r--. 1 tianF enosoft 495 10月 18 2008 setup.py
-rw-r--r--. 1 tianF enosoft 1547 3月 4 2007 setup_windows.py
-rw-r--r--. 1 tianF enosoft 592 10月 17 2008 site.cfg
drwxr-xr-x. 2 tianF enosoft 149 3月 31 2009 tests

在配置python-mysql之前,还需要安装一些依赖项;否则会各种报错缺失

名称 来源 安装方式
python-devel 系统自带 yum whatprovides python* 将查询到的符合关键字名称的包逐个安装
mysql-server
mysql-devel
setuptools 系统自带 http://pypi.python.org/pypi/setuptools 下载,根据python的版本选择对应的setuptools版本或者使用自带包 yum install python-setuptools
MySQL-python 网络下载

可使用yum whatprovides mysql-devel命令查看是否已安装(旧版本Linux系统下包名称为 mysql-dev,如果mysql-devel提示找不到,则使用dev替代):

如果命令报错,则表示yum源配置有误,或安装光盘与系统不匹配等,具体请参考Linux下yum源配置教程

[root@localhost mysql-python]# <strong>yum whatprovides mysql-devel</strong>
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
base        | 3.9 kB  00:00 ...
mysql-devel-5.1.66-2.el6_3.x86_64 : Files for development of MySQL applications
Repo  : base
Matched from:
 
mysql-devel-5.1.66-2.el6_3.i686 : Files for development of MySQL applications
Repo  : base
Matched from:
 
mysql-devel-5.1.66-2.el6_3.x86_64 : Files for development of MySQL applications
Repo  : installed
Matched from:
Other  : Provides-match: mysql-devel
 
mysql-devel-5.1.66-2.el6_3.i686 : Files for development of MySQL applications
Repo  : installed
Matched from:
Other  : Provides-match: mysql-devel

如上所示,Repo值为installed则表示已经安装;主要观察mysql-devel关键字的包是否已安装;如未安装,则输入yum install mysql-devel命令安装

依次安装mysql-devel、python-devel、python-setuptools,安装过程不报错则继续;

以上依赖项安装完成后,回到MySQL-python解压出的MySQL-python-1.2.3c1/目录;

>> python setup.py build

>> python setup.py install

以上两项命令正确执行,则表示python配置mysqldb成功,再次验证导入MySQLdb是否报错

[root@localhost mysql-python]#
[root@localhost mysql-python]# python
Python 2.7.5 (default, Aug 4 2017, 00:39:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>

如上表示配置MySQLdb成功

常见错误:python setup.py build提示找不到mysql_config

这个问题是因为在构建mysqldb时,使用MySQL-python-1.2.3c1/目录下的site.cfg文件中配置的mysql_config;

[root@localhost MySQL-python-1.2.3c1]# ls
build  doc   HISTORY  metadata.cfg _mysql_exceptions.py PKG-INFO  setup.cfg   setup_posix.py setup_windows.py
ChangeLog ez_setup.py MANIFEST  _mysql.c  _mysql_exceptions.pyc pymemcompat.h setup_common.py setup_posix.pyc site.cfg
dist  GPL   MANIFEST.in MySQLdb  MySQL_python.egg-info README   setup_common.pyc setup.py   tests
[root@localhost MySQL-python-1.2.3c1]# more site.cfg
[options]
# embedded: link against the embedded server library
# threadsafe: use the threadsafe client
# static: link against a static library (probably required for embedded)
 
embedded = False
threadsafe = True
static = False
 
# The path to mysql_config.
# Only use this if mysql_config is not on your PATH, or you have some weird
# setup that requires it.
#mysql_config = /usr/local/bin/mysql_config
 
# The Windows registry key for MySQL.
# This has to be set for Windows builds to work.
# Only change this if you have a different version.
registry_key = SOFTWARE\MySQL AB\MySQL Server 5.0
[root@localhost MySQL-python-1.2.3c1]#

如果mysql的安装位置与site.cfg中配置的位置不符,则需要修改site.cfg文件的#mysql_config配置,取消前面的注释,并配置为正确的地址。例如

mysql_config = /usr/bin/mysql_config #(未指定的情形下,mysql_config的位置默认在/usr/bin目录,不同系统存在差异,具体可通过搜索文件获取实际位置)

验证python-Mysql功能

根据需要配置Mysql数据库,并修改好用户名与密码;

查看python-mysql基础语法,链接mysql数据库的mysql库,获取user表信息,代码如下;

#!/usr/bin/python
#encoding=utf8
 
import MySQLdb
conn=MySQLdb.connect("127.0.0.1","root","123456","mysql")
cursor=conn.cursor()
cursor.execute("select * from user")
getdata=cursor.fetchone()
print "the user table content is:",getdata
conn.close()

执行结果如下:

[root@localhost python]# python mysql-conn.py
the user table content is: ('%', 'root', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0L, 0L, 0L, 0L, <br>'mysql_native_password', '123456', 'Y', datetime.datetime(2017, 9, 14, 14, 40, 2), None, 'N')
[root@localhost python]#

至此,Python配置Mysql验证通过!

以上这篇Python配置mysql的教程(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python和php通信乱码问题解决方法
Apr 15 Python
python中__call__方法示例分析
Oct 11 Python
python实现从ftp服务器下载文件的方法
Apr 30 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
TensorFlow实现MLP多层感知机模型
Mar 09 Python
python: 自动安装缺失库文件的方法
Oct 22 Python
python 监听salt job状态,并任务数据推送到redis中的方法
Jan 14 Python
python实现微信自动回复及批量添加好友功能
Jul 03 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
Django自带的用户验证系统实现
Dec 18 Python
Django后端按照日期查询的方法教程
Feb 28 Python
python 基于pygame实现俄罗斯方块
Mar 02 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
Oct 13 #Python
python的paramiko模块实现远程控制和传输示例
Oct 13 #Python
基于python(urlparse)模板的使用方法总结
Oct 13 #Python
Python创建对称矩阵的方法示例【基于numpy模块】
Oct 12 #Python
Python中的浮点数原理与运算分析
Oct 12 #Python
python中获得当前目录和上级目录的实现方法
Oct 12 #Python
Python实现的十进制小数与二进制小数相互转换功能
Oct 12 #Python
You might like
php上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
CI框架表单验证实例详解
2016/11/21 PHP
splice slice区别
2006/10/09 Javascript
js下用层来实现select的title提示属性
2010/02/23 Javascript
window.ActiveXObject使用说明
2010/11/08 Javascript
中止javascript执行的方法
2014/02/14 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
详解Node.js实现301、302重定向服务
2017/04/07 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
python编程实现希尔排序
2017/04/13 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
Python函数中不定长参数的写法
2019/02/13 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Styleonme中文网:韩国高档人气品牌
2017/06/21 全球购物
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
如何在Shell脚本中使用函数
2015/09/06 面试题
旅游专业职业生涯规划范文
2014/01/13 职场文书
村党支部换届选举方案
2014/05/02 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
用python开发一款操作MySQL的小工具
2021/05/12 Python
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android