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实现文件名批量替换和内容替换
Mar 20 Python
Python Socket传输文件示例
Jan 16 Python
使用 Python 实现微信公众号粉丝迁移流程
Jan 03 Python
python中ASCII码和字符的转换方法
Jul 09 Python
Python requests库用法实例详解
Aug 14 Python
python实现flappy bird小游戏
Dec 24 Python
利用python在excel里面直接使用sql函数的方法
Feb 08 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
Python学习笔记之函数的定义和作用域实例详解
Aug 13 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
Python根据字符串调用函数过程解析
Nov 05 Python
详解运行Python的神器Jupyter Notebook
Jun 03 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数组合并的二种方法
2014/03/21 PHP
curl和libcurl的区别简介
2015/07/01 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
2017/07/10 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
如何基于python实现脚本加密
2019/12/28 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
Python日志syslog使用原理详解
2020/02/18 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
python3从网络摄像机解析mjpeg http流的示例
2020/11/13 Python
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
班级学雷锋活动总结
2014/06/26 职场文书
党的生日演讲稿
2014/09/10 职场文书
南京大屠杀观后感
2015/06/02 职场文书
疾病证明书
2015/06/19 职场文书
会议承办单位欢迎词
2015/09/30 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS