文档章节

MySQLdb安装

艳沐石
 艳沐石
发布于 2014/11/19 15:14
字数 953
阅读 29
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

最近,朋友们常提起python。既然大家都觉得它好,而且之前我在linux下安装google的goagent代理的时候,出现过python的错误,我也自己想学习一下,理解一下它是如何处理解决问题的。python的环境,在linux下是安装好的。那么,为了能让python操作数据库,我按照网上的方法安装MySQLdb。

背景描述

服务器:centos 6.3
数据库:mysql 5.6采用rpm方式安装
    MySQL-client-5.6.16-1.el6.x86_64.rpm
    MySQL-server-5.6.16-1.el6.x86_64.rpm

软件准备

下载软件:
wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz

软件安装

  将文件解压后,在README文件中,有linux下安装步骤,如下
$ tar xfz MySQL-python-1.2.3.tar.gz
  $ cd MySQL-python-1.2.3
  $ # edit site.cfg if necessary
  $ python setup.py build
  $ sudo python setup.py install # or su first


问题解决

按照官方给的步骤,进行安装,出现了几个问题。

1. ImportError: No module named setuptools
解决方法:yum install python-setuptools

2. EnvironmentError: mysql_config not found
解决方法:需要安装MySQL-devel-5.6.16-1.el6.x86_64.rpm
(注:查看当前安装的mysql信息,或者find / -name mysql_config,查看是否存在对应命令。没有需要安装对应的mysql-devel。)

3.  /usr/bin/ld: cannot find -lmysqlclient_r
解决方法:mysql-python的目录下site.cfg 的 threadsafe = True 改为 False。就可以安装,的确如此。再看看 mysql 源码里的 ./configure –help 就知道有个 –enable-thread-safe-client 选项,如果安装的时候指定就可以了(就还是用 threadsfe = True)。
当调整为threadsafe的方法时候,知识将lmysqlclient_r更换为lmysqlclient。并没有根除这个问题。
在网上查看了遇到很多类似问题。后来在mysql官网上,搜索了一下lmysqlclient,发现一条如下的信息:
        Connector/C (libmysqlclient) is a client library for C development.
其实libmysqlclient是一个客户端类库为了C开发者,关于这个文件的说明地址如下:
http://dev.mysql.com/doc/connector-c/en/connector-c-installation-binary.html
在文中提到,使用rpm安装mysql的时候,需要安装的类库:shared和devel,而我只安装了devel。安装shared解决问题。

Installing MySQL Connector/C on Linux Using RPM Packages
There are two Linux RPM packages for MySQL Connector/C. Install one or both, depending on the capabilities you require:

The shared RPM contains the shared client library. Install this RPM if you intend to compile or run C API applications that depend on the shared client library.

The devel RPM contains the header files and the static client library. Install this RPM if you intend to compile C API applications.




问题扩展

1. 在之前安装lua的时候,也出现过/usr/bin/ld下无法找到目录。
    问题描述:
       在软件编译时出现usr/bin/ld: cannot find -lxxx的错误。
    原因:库文件并没有导入的ld检索目录中。
    解决方法:
        a. 确认库文件是否存在,比如-l123, 在/usr/lib, /usr/local/lib,或其它自定义的lib下有无lib123.so, 如果只是存在lib123.so.1,
那么可以通过ln -sv lib123.so.1   lib123.so,建立一个连接重建lib123.so.
        b. 检查/etc/ld.so.conf中的库文件路径是否正确,如果库文件不是使用系统路径,/usr/lib, /usr/local/lib, 那么必须在文件中加入。
        c. ldconfig 重建ld.so.cache文件,ld的库文件检索目录存放文件。
尤其刚刚编译安装的软件,必须运行ldconfig,才能将新安装的库文件导入ld.so.cache.

参考:
1. http://www.cnblogs.com/rollenholt/archive/2012/05/07/2487137.html
2. http://www.linuxqq.net/archives/733.html
3. http://www.jbxue.com/LINUXjishu/15034.html
4. http://dev.mysql.com/doc/connector-c/en/connector-c-installation-binary.html




下一篇: JS事件控制
艳沐石
粉丝 3
博文 44
码字总数 24375
作品 0
大兴
程序员
私信 提问
加载中
请先登录后再评论。
解析apk安装包的工具--apkutil

apkUtil是一个用来解析apk安装包的工具,通过它可以获取一个安装包的图标、程序名、所需android平台,权限等信息,并将其转换为java对象。该工具依赖于aapt工具,目前仅支持在windows平台上运...

貌似掉线
2012/11/18
5K
0
Pulse 安装失败

刚刚下载 安装!!按照instanlling.txt指示做 build.xml 生成一个war包 放到tomcat下运行结果就是报异常失败

jiguansheng
2010/04/12
734
2
IPython notebook安装指导

1.环境准备 --- #在安装之前执行,依赖执行 # 依赖数据库,必须安装后才能使用 --- 如果安装后,执行命令 仍然出现下面的错误 "没有名字为的模块",一般来说需要重新编译python环境然后使用下...

胡佐治
2015/12/19
1.7K
0
快速安装可视化IDS系统

快速安装可视化IDS系统 本节为大家介绍的软件叫安全洋葱Security Onion,根OSSIM一样,它是基于DebianLinux的系统,内部集成了很多开源安全工具,NIDS、HIDS、各种监控工具等等,下面我们就一...

OSSIM
2016/05/29
2.7K
1
踩坑之路:史上最详细Windows版本搭建安装React Native环境配置

本文基于已有博客,记录个人踩坑: http://www.lcode.org/%E5%8F%B2%E4%B8%8A%E6%9C%80%E8%AF%A6%E7%BB%86windows%E7%89%88%E6%9C%AC%E6%90%AD%E5%BB%BA%E5%AE%89%E8%A3%85react-native%E7%8......

滴滴丶哔哔
2016/05/29
721
1

没有更多内容

加载失败,请刷新页面

加载更多

Azure Application Gateway(一)对后端 Web App 进行负载均衡

一,引言   今天,我们学习一个新的知识点-----Azure Application Gateway,通过Azure 应用程序网关为我么后端的服务提供负载均衡的功能。我们再文章头中大概先了解一下什么是应用程序网关...

osc_lc4icfkt
8分钟前
0
0
WoLai(我来) 注册码 ——国内版 notion 【笔记】

注册码: SQGYG23 ❤ W4T9PKP JLTHNJP KMTXK7P JDHKJEM KRJXX5P 6M7PPAP DEGLMG3 N3BZMRI 87BR22I GSIWGWP GNGBNTI QA8URIM UDUV9VM IHKJA7P MD9ZA3M 3XR67ZI TBUP9JX TI4TYMM 注册完了可以把......

osc_c05lkk3u
9分钟前
4
0
2020hdu多校第二场比赛及补题

这一场我们队只A了一题 1010 Lead of Wisdom 直接爆搜,但是T了好几发,剪了下枝 如果一个物品的a,b,c,d都比不上另外一个同种物品的a,b,c,d,那这个物品就可以直接淘汰掉了 #include<iostrea...

osc_usgpahnw
10分钟前
13
0
为什么Java有瞬态字段? - Why does Java have transient fields?

问题: 为什么Java有瞬态字段? 解决方案: 参考一: https://stackoom.com/question/3opS/为什么Java有瞬态字段 参考二: https://oldbug.net/q/3opS/Why-does-Java-have-transient-fields...

富含淀粉
10分钟前
0
0
轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议

概述说明 CAS Server默认搭建出来,客户端程序只能按照CAS自身的协议接入。CAS的强大在于,有官方的插件,可以支持其他的协议。本章节就让CAS Server怎么增加OAuth2.0的登录协议。 安装步骤 ...

osc_inj0cicw
12分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部