`

离线源码安装MySQL-Python

阅读更多

//系统版本

]# lsb_release -a

LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch

Distributor ID: RedHatEnterpriseServer

Description: Red Hat Enterprise Linux Server release 6.4 (Santiago)

Release: 6.4

Codename: Santiago

 

//mysql的rpm安装情况

]# rpm -qa | grep -i mysql

MySQL-server-advanced-5.6.22-1.rhel5.x86_64

MySQL-devel-advanced-5.6.22-1.rhel5.x86_64

MySQL-client-advanced-5.6.22-1.rhel5.x86_64

 

1. //下载源码包

https://pypi.python.org/pypi/MySQL-python/ 

我下载的是1.2.3

 

2. 解压:tar zxvf MySQL-python*

 

]# pwd

/u01/app/mysql-python/MySQL-python-1.2.3

[root@clone2_lsb_oracle MySQL-python-1.2.3]# ls

build  ez_setup.py  metadata.cfg  _mysql_exceptions.py   PKG-INFO       setup.cfg         setup_posix.py   setup_windows.py

dist   HISTORY      _mysql.c      _mysql_exceptions.pyc  pymemcompat.h  setup_common.py   setup_posix.pyc  site.cfg

doc    MANIFEST.in  MySQLdb       MySQL_python.egg-info  README         setup_common.pyc  setup.py         tests

[root@clone2_lsb_oracle MySQL-python-1.2.3]# ?

 

3. 安装

 

3.1 之前遇到的问题

安装时

/usr/include/python2.6/pyconfig-64.h:808:1: warning: this is the location of the previous definition

gcc -pthread -shared build/temp.linux-x86_64-2.6/_mysql.o -L/usr/lib64 -L/usr/lib64 -lmysqlclient -lpthread -lm -lrt -ldl -lstdc++ -lpython2.6 -o build/lib.linux-x86_64-2.6/_mysql.so

/usr/bin/ld: cannot find -lmysqlclient

collect2: ld returned 1 exit status

error: command 'gcc' failed with exit status 1

 

使用时

[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import sys

>>> import MySQLdb

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "MySQLdb/__init__.py", line 19, in <module>

    import _mysql

ImportError: /usr/lib64/python2.6/site-packages/MySQL_python-1.2.5-py2.6-linux-x86_64.egg/_mysql.so: undefined symbol: __gxx_personality_v0

>>> 

 

问题1是:

在编译时找不到连接文件mysqlclient.so,为什么没有?因为编译时没生成。 根因是编译MySQLdb时,指向的依赖的mysql路径不对!!

方案a 建立软连接文件:ln -s /usr/lib64/mysql/libmysqlclient.a  /usr/lib64/libmysqlclient.a

(推荐)方案b 修改依赖的mysql路径:

      找到find / -name 'mysql_config'

      我的是/usr/bin/mysql_config

 修改]# vi setup_posix.py ,在第26行,指定依赖的mysql_config配置文件

 25     return data

     26 mysql_config.path = "/usr/bin/mysql_config"

 再修改]# vi /usr/bin/mysql_config ,在所有 -lmysqlclient前面加上实际依赖的mysql路径,我的是/user/lib64/mysql

    114 libs=" $ldflags -L$pkglibdir -L/usr/lib64/mysql  -lmysqlclient   -lpthread -lm -lrt -ldl "

    115 libs="$libs   "

    116 libs_r=" $ldflags -L$pkglibdir -L/usr/lib64/mysql  -lmysqlclient   -lpthread -lm -lrt -ldl   "

 

问题2是:

   没链接libstdc++.so,用gcc编译和链接c++文件,没有自动链接上c++的标准库。 

   ]# vi setup_posix.py ,修改 setup_posix.py 为编译时加上stdc++,

     86     create_release_file(metadata)

     87     del metadata['version_info']

     88     libraries.append('stdc++')

     89     ext_options = dict(

 

注意如果之前编译过,请删除setup_posix.pyc字节文件(重新编译会再生成)

 

3.2  编译安装

 MySQL-python-1.2.3]#  python setup.py build

 MySQL-python-1.2.3]#  python setup.py install

 

如果安装过程出错,要重新安装/安装另外的版本,请查看 egg和easy_install卸载安装的egg

    

 //测试dbDump.py    

import sys

import MySQLdb

 

COLSIZ=10

 

def dbDump(cur):

    cur.execute('SELECT * FROM t1')

    print '\n%s%s' % ('NAME'.ljust(COLSIZ),'ID'.ljust(COLSIZ))

    for data in cur.fetchall():

        print '%s%s' % tuple([str(s).title().ljust(COLSIZ) \

            for s in data])

 

cxn = MySQLdb.connect(host="192.168.xxx.xxx",port=3306,db="hivemeta",user="userxxx",passwd="pdxxx")

cur = cxn.cursor()

dbDump(cur)

cur.close()

cxn.close()

 

MySQL-python-1.2.3]# python /u01/app/pythonstudy/dbDump.py 

 

NAME      ID        

1         Qq        

2         Ss        

3         Ff     

 

 

分享到:
评论

相关推荐

    离线安装python2的MySQLdb

    你可以访问Python Package Index (PyPI)官网,搜索`MySQL-python`(MySQLdb的旧名称),下载对应的源码压缩包,例如`MySQL-python-1.2.5.zip`。 2. **准备MySQL的C库**:MySQLdb需要MySQL的C库来编译和链接。如果你...

    snmp在centos7上离线安装手册.docx

    1. 下载并安装`mysql-connector-python-2.1.1.tar.gz`和`paramiko-1.16.0.tar.gz`。 2. 安装`python-devel`以支持Python开发环境。 ##### 7.2 测试Python脚本 1. 编写Python脚本,用于连接数据库并插入数据。 2. ...

    MHA离线安装依赖包.rar

    3. Python相关库:MHA Manager是用Python编写的,因此可能需要像`python-setuptools`、`python-pip`、`python-mysqldb`等库。 4. 其他依赖库:例如`protobuf-compiler`、`protobuf-cpp`等,用于编译MHA Manager。 ...

    webpy离线包

    这个"webpy离线包"包含了WebPy框架的所有必要组件,使得开发者可以在没有网络连接的情况下进行安装,这对于那些需要在隔离环境或者网络受限的服务器上部署应用的用户来说非常实用。 WebPy的核心理念是简洁,它的...

    Python基于Django购物网站HTML5响应式设计毕业源码案例设计+mysql+毕业设计.zip

    为了运行此项目,你需要安装Python环境,并通过`pip install -r requirements.txt`安装所需的依赖。然后,使用`python manage.py migrate`创建数据库表,`python manage.py runserver`启动开发服务器。最后,通过...

    仿迅雷看看源码V4.0

    3. **数据库管理**:描述中提到“建议修改下数据库的位置”,这表明源码中包含了数据库配置,可能使用MySQL、PostgreSQL等关系型数据库存储电影信息、用户数据等。修改数据库位置可能是为了适应不同的服务器环境或...

    风车IM即时通讯聊天系统源码-聊天APP-附APP-带安装教程.zip

    "后端(上传到opt目录)"这部分源码可能是服务器端逻辑,通常用Node.js、Java、Python或Golang等语言编写。后端负责处理用户请求,管理数据库,执行业务逻辑,以及与前端进行通信。这部分源码可能包含了数据库模型...

    DB-GPT DB-GPT.zip

    在实际应用中,DB-GPT可能需要针对具体数据库管理系统(如MySQL、Oracle、PostgreSQL)进行适配,并可能需要调整以处理特定领域的查询语义,例如金融、医疗或电商领域的特定数据结构和业务逻辑。 总之,DB-GPT是一...

    packages.zip

    这将编译源码并将其安装到系统的Python路径中。 4. **配置binlog2sql**:根据你的MySQL服务器设置,配置binlog2sql的连接参数,如主机名、用户名、密码和binlog的位置。这些参数可以通过修改binlog2sql的配置文件或...

    linux centos 7 pyCrypto模块安装指指导文档.pdf

    yum install python-devel ``` 接着重新运行编译和安装: ``` python setup.py install ``` 测试安装是否成功可以运行`python setup.py test`,即使测试失败,也可以继续使用,因为并非所有功能都必须通过测试。 **...

    基于python的英汉电子词典软件源码数据库.docx

    ### 基于Python的英汉电子词典软件源码数据库知识点详解 #### 一、项目背景与意义 本项目的研发旨在解决传统纸质英汉词典携带不便的问题,利用现代互联网技术,特别是Python语言,开发出一款便于用户随时随地查询...

    superset2.0在Windows环境和Linux环境下的安装配置

    superset2.0在Windows环境和Linux环境下的安装配置

    CDH 5.5.0 - 安装文档(Hadoop详细版)

    可以从[Python官网](https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz)下载源码包,并自行编译安装。 2. **JDK 7 Update 80**:Java是运行Hadoop和CDH的基础,因此确保安装正确的JDK版本至关重要。...

    微信HTML5在线朋友圈游戏源码带安装部署教程-切割果冻片.zip

    4. **安装部署教程**:这表示随源码一起提供的还有一套指导如何在服务器上安装和部署这个游戏的教程,对于不熟悉后端部署的开发者来说非常有用。 【描述解析】 "微信HTML5在线朋友圈游戏源码带安装部署教程-切割...

    微信HTML5在线朋友圈游戏源码带安装部署教程-搞定丈母娘.rar

    该压缩包文件“微信HTML5在线朋友圈游戏源码带安装部署教程-搞定丈母娘.rar”包含了一款基于HTML5技术开发的微信朋友圈游戏的完整源代码,以及相关的安装和部署教程。通过学习和理解这个源码,我们可以深入探讨以下...

    DATAX安装与开发

    - **解压**:切换到root用户,使用`tar -xzf Python-2.7.3.tgz`命令解压。 - **编译和安装**: - 进入解压后的目录,运行`./configure`命令进行配置。 - 运行`make`命令进行编译。 - 最后运行`make install`...

    利用binlog还原sql或者恢复数据python工具

    1. **安装binlog2sql**: 首先,你需要从源码或软件仓库获取binlog2sql,使用Python的pip工具进行安装: ``` pip install git+https://github.com/xiaoyuezhi/binlog2sql.git ``` 2. **配置连接**: 设置binlog2...

    微信HTML5在线朋友圈游戏源码带安装部署教程-小猪飞飞.zip

    8. **安装部署教程**:源码包可能包含详细的安装和部署指南,指导开发者或运营者如何在自己的服务器上运行游戏,包括环境配置、数据库设置、域名绑定等步骤。 学习并理解这款游戏的源码,开发者可以深入掌握HTML5...

    MHA0.58安装包_和依赖包.rar

    7. Python-MySQLdb:Python绑定的MySQL数据库接口。 四、MHA 0.58安装步骤 1. 下载MHA 0.58安装包及依赖包:在提供的“MHA0.58安装包_和依赖包.rar”中,包含了所需的所有文件。 2. 解压安装包:使用解压缩工具...

    微信HTML5在线朋友圈游戏源码带安装部署教程-测测你的幸福指数有多高.zip

    该压缩包文件“微信HTML5在线朋友圈游戏源码带安装部署教程-测测你的幸福指数有多高.zip”包含了创建一个微信HTML5游戏的完整资源,主要用于在微信朋友圈中分享和游玩。这款游戏旨在测试用户的生活幸福指数,通过...

Global site tag (gtag.js) - Google Analytics