libmysqld_dev linux,Linux下python玩转MySQLdb

(0)目录

Linux下python玩转MySQLdb

一:起因

(1)Linux下安装python的第三方模块 ---- MySQLdb,自己走了很多弯路,在此做一下总结,希望对于像我一样的初学者有所帮助

(2)Python中mysql数据库连接的例子,请见Linux公社 或者 我的个人github源代码

(3)MySQL-python 1.2.5的下载地址,同样也是pipe python的资源网站

二:MySQLdb在Linux环境中的安装

(1)Linux 下的安装mysql数据库,除了下载安装包进行安装外,一般的linux 仓库中都会有mysql ,安装命令:

Ubuntu\zyp

>>sudo apt-get install mysql-server

>>Sudo apt-get install mysql-client

>>mysql -u root -p 即可检验mysql服务和客户端是否安装和开启

(2)MySQL-python驱动模块安装

下载地址:https://pypi.python.org/pypi/MySQL-python/

下载MySQL-python-1.2.5.zip 文件之后直接解压。进入MySQL-python-1.2.5目录:

>>python setup.py install  ----- 报错误

(3-1)Python安装模块出错(ImportError: No module named setuptools)解决方法

安装请看 http://blog.csdn.net/ab198604/article/details/8681851 或者 更加科学的方法

(3-2)提示报错信息:mysql_config not found

这个是因为缺少libmysqld_dev, libmysqlclient_dev 两个开发包引起的

下载缺少的开发包,运行两个命令:(如果未找到包,请详细查看更改163源)

sudo apt-get insatll libmysqld-dev

sudo apt-get install libmysqlclient-dev

(4)修改源代码目录下的setup_posix.py文件,将mysql_config.path 修改为mysql_config.path="/usr/bin/mysql_config"

再次在源代码目录中运行python setup.py build

系统再次提示报错信息: error: command 'gcc' failed with exit status 1

需安装两个资源文件 :

sudo apt-get install build-essential

sudo apt-get install python-dev

(5)再次会到源文件目录执行

sudo python setup.py build

sudo python setup.py install

至此,mysql的模块安装完成!

(6)检查MySQLdb 模块是否可以正常导入

>>> import MySQLdb

(7)示例

import MySQLdb

# establish connection with mysql

conn = MySQLdb.connect(host='localhost',user='root',passwd='root')

# get the cursor of operator

cur = conn.cursor()

# execute sql and create database name/ drop database name

cur.execute("""create database if not exists python""")

# select database use database

conn.select_db('python')

# execute and create table

cur.execute("""create table test(id int,ifo varchar(100))""")

value = [1,"inserted?"]

# insert one record

cur.execute("insert into test values(%s,%s)",value)

values=[]

for i in range(20):

values.append((i,'Hello mysqldb,I am record' + str(i)))

# insert multi records

cur.executemany("""insert into test values(%s,%s)""",values)

# close cursor

cur.close()

print "create successfully!"

示例解释:

conn = MySQLdb.connect(host = 'localhost', user = 'root', passwd = 'root',db = 'python')

# connect() 方法用于创建数据库的连接,可指定参数:用户名,密码,主机等,这只是连接到了数据库,操作数据库需要创建游标。

cur = conn.cursor()

# 通过获取到的数据库连接conn下的cursor()方法来创建游标。

cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")

# 通过游标cur 操作execute()方法,我们可以写入纯sql语句。

cur.close()

# cur.close() 关闭游标

conn.commit()

# conn.commit()方法用于提交事物,在向数据库插入一条数据时必须要有这个方法,否则数据不会被真正的插入。

conn.close()

# Conn.close()关闭数据库连接

三:linux操作数据库命令

(1)创建数据库

命令:create database

(2)创建数据库并分配用户

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON

数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';

(3)基本操作小结

# common command --- the same to cmd consel ---- mysql -u root -p --

# mysql -- show databases; -- create database name -- use dbname --

# drop database name -- create table name (id int, name varchar(100)) --

# select * from tbname (where) / delete from tbname where -- desc tbname

# insert into tbname values(1,'zyp') / update tbname set id=99 where id=9

(4)linux操作系统上面开发程序, 只有了gcc 是不行的,还需要一个   build-essential软件包

作用是提供编译程序必须软件包的列表信息,也就是说 编译程序有了这个软件包,它才知道 头文件在哪 才知道库函数在哪,还会下载依赖的软件包   最后才组成一个开发环境

软件包: build-essential 安装方法:sudo apt-get install build-essential

(5)linux发行版通常会把类库的头文件和相关的pkg-config分拆成一个单独的xxx-dev(el)包。以python为例, 以下情况你是需要python-dev的

当需要自己安装一个源外的python类库, 而这个类库内含需要编译的调用python api的c/c++文件,这时需要写的一个程序编译需要链接libpythonXX.(a|so);其他正常使用python或者通过安装源内的python类库的不需要python-dev。

libmysqlclient-dev 是MySQL database development files;ubuntu 上 mysql-devel 库的名字叫 libmysqld-dev,安装方法:sudo apt-get install libmysqld-dev

(6)Linux查看mysql 安装路径

1)查看文件安装路径

由于软件安装的地方不止一个地方,所有先说查看文件安装的所有路径(地址)。

这里以mysql为例。比如说我安装了mysql,但是不知道文件都安装在哪些地方、放在哪些文件夹里,可以用下面的命令查看所有的文件路径

在终端输入:whereis mysql,回车,如果你安装好了mysql,就会显示文件安装的地址

[root@localhost ~]# whereis mysql

mysql: /usr/bin/mysql /usr/lib/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

2)查询运行文件所在路径(文件夹地址)

如果你只要查询文件的运行文件所在地址,直接用下面的命令就可以了(还是以mysql为例):

which mysql 终端显示:

[root@localhost ~]# which mysql

/usr/bin/mysql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560049.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机按键控制数码管c语言程序,基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文).doc...

基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文)物理与电子工程学院2014级课程设计PAGE IV物理与电子工程学院《单片机原理与接口技术》课程设计报告书设计题目: 基于单片机的按键控制LED数码管共阴极动态显示电路设计专 业: 自动化…

c语言把数据存放在文件中,急求如何将下列C语言程序数据存储到文件中?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼求如何改动才能将下列程序的存储输入或输出数据(或两者一起)到指定的文件(或运行时直接创立一个文件)如Arrangement中。#include int n0;int rest[7][7]; //全局声明,以供全局调用int main(){void perm(int list[],int ,int );int …

c语言sgoto 标志位,如何在Go中设置TCP数据包的“不分段”标志位?(How to set “don't fragment” flag bit for TCP packet in Go?)...

如何在Go中设置TCP数据包的“不分段”标志位?(How to set “dont fragment” flag bit for TCP packet in Go?)我打算在Go中设置“do not fragment”标志位,与C中的这个标志位相同。我检查了常量列表,但没有找到该选项。 那么Go的相应选项是…

林锐 高质量c语言编程下载,新年献礼:Go语言深度入门手册

(文末的阅读原文,效果最佳!)作者:李佶澳 微信:lijiaocnGo 语言深度入门手册,帮你更好的理解 Go 语言,写出更高效、更规范、更不易出错的代码。Go 在 2012 年发布 1.0 版本,距今已经 8 年了。和历…

android中shape资源定义,Android中drawable使用Shape资源

本文实例为大家分享了drawable使用Shape资源的具体内容,供大家参考,具体内容如下1.画一条水平方向的虚线android:shape"line" >android:dashGap"3dp"android:dashWidth"6dp"android:width"1dp"android:color…

永洪报表工具_2020年最值得推荐的五大BI工具

现在很多公司和业务部门都十分注重数据分析,并为企业信息化建设做准备。以前收集、处理、分析数据可能是IT部门和数据库员的专属,现在很多业务部门都急切的开始用数据分析的思维分析业务问题。在过去,大多数数据人员的工作模式都是自己使用ex…

容量耦合系数模型_期刊在线 | 基于ALE流固耦合方法的刷式密封泄漏特性理论与实验研究...

01引言刷式密封是一种广泛应用于航空发动机等透平机械的优良接触式动密封[]。近年来,随着透平机械逐渐向高参数方向发展,由刷式密封引起的泄漏损失越来越大,直接影响透平机械的工作效率。因此开展刷式密封的泄漏流动特性研究具有重要理论和实…

设备管理器android感叹号,设备管理器其他设备感叹号

设备管理器其他设备感叹号客观地讲,常规的设备管理器问题与设备管理器在哪,设备管理其怎么打开以及设备管理其其他设备感叹号是什么问题等。本文重点介绍设备设备管理器其他设备感叹号相关问题,希望能够为对此有需求的朋友提供参考或帮助。设…

android studio 集成 第三方sdk,Android FrameWork集成第三方SDK的jar包和so庫

本文講解的如何在Android FrameWork如何集成XXXsdk的jar包和so庫首先在framework/opt/建立XXSDK的文件夾講jar包和so庫拷貝進去1:framework/opt/xxsdk/然后直接看Android.mk就行# Copyright (C) 2009 The Android Open Source Project## Licensed under the Apache License, Ve…

unity要学ecs吗_ECS的泛泛之谈

这篇文章将带着你从设计出发重新发现ECS。注意:此篇为泛泛之谈,不涉及具体实现。从Abstract说起从”是”到”能”再到”有”对对象的抽象是整理代码的要点,继承是一种比较古老并常见的抽象,其描述了一个对象"是"什么,其…

条令考试小程序辅助器_计算机一级考试干货!

计算机一级考试干货一年两度的计算机等级考试就要在2019年3月30-31日期间开始啦!为了更好的让同学们了解考试的大体内容,我们已整理如下内容,可以供大家参考。同时,希望大家认真备考,争取都一次性过哦!考试…

android文件系统只读,android

>>#1 票数:408最近,我扎根了Droid X,一切似乎都运转良好。 我对build.prop进行了一些更改,当我执行adb push build.prop /system/ ,出现以下错误: failed to copy c:\\build.prop to /system//build.…

燃气灶电气线路图及原理_一位造价大神的电气工程造价知识整理笔记_深圳电气造价预算培训要多少钱...

电气设备安装工程是建设工程中的一种常见的、重要的设备安装工程。电气设备安装工程计价涉及到许多电气工程专业知识。一、电气设备安装工程的组成一般的电气设备安装工程是以接受电能,经变换、分配电能,到使用电能或从接受电能经过分配到用电设备所形成…

荣耀es升级鸿蒙,华为手机明年全部升级鸿蒙系统 所有自研设备换OS

近日,华为举行 HarmonyOS 2.0 手机开发者 Beta 活动,现场正式发布了 HarmonyOS 2.0 手机开发者 Beta 版本。华为消费者业务软件部副总裁杨海松在接受媒体采访表示,到今天为止,参与鸿蒙开发项目的开发者数量超过 10 万,…

signature=08653706deda7871a1f662eae4d2b33e,The nature of nuclear Halpha emission in LINERs

摘要:To get insight in the nature of the ionized gas in the nuclear region of LINERs we have performed a study of HST Halpha imaging of 32 LINERs. The main conclusion from this analysis is that for the large majority of LINERs (84%) an unresolve…

腐蚀国内稳定服务器_工控机箱和服务器机箱区别在哪里

服务器机箱必须能够装进机柜,一个标准机柜的宽度是19英寸482.6mm,所以机箱的宽度是几乎固定的,一般是17英寸左右,两侧再安装把手和轨道。机箱高度也有规定,用U(Unit)做单位,1U是44.5mm,机箱高度…

signature=99daf37ca32015c39987d04abe5a559d,合肥2015年7月4日至2015年7月16日交通违章查询...

备注:查询时按ctrlf,方便快速查找。小型汽车(蓝牌)藏AQ1103 川A2ZH95 川A2ZL77 川A4RL16 川AB9B03 川AF8R10川AG28F8 川RS5355 鄂A51602 鄂A6NW35 鄂A721K6 鄂A87Q05鄂A8XQ78 鄂A9DU50 鄂AH07W0 鄂AJ1V12 鄂AK08L5 鄂AM02D6鄂AM5488 鄂AN1A91 鄂AP5Y77 鄂…

hive不在同一台机 hue_环境篇:呕心沥血@CDH线上调优

环境篇:呕心沥血CDH线上调优为什么出这篇文章?近期有很多公司开始引入大数据,由于各方资源有限,并不能合理分配服务器资源,和服务器选型,小叶这里将工作中的总结出来,给新入行的小伙伴带个方向&…

网页制作的基本语言html,网页制作基础语言HTML.ppt

网页制作基础语言HTML2. 内嵌音频播放插件 通过内嵌音频播放插件可以在浏览器中出现控制面板,也可作为背景音乐。其格式为: 【例2-27】 3. IE中的背景音乐 可以插入背景音乐格式,不过只有在IE浏览器中才可以听到。其格式为: 播放次…

coji 编程机器人_WowWee编程机器人怎么样 WowWee编程机器人使用测评

现在社会已经互联网化,很多小孩的补习班里面也开始出现编程特色补习班,也出现了编程玩具,下面乐海购的编辑就来说说:WowWee编程机器人怎么样WowWee编程机器人使用测评。WowWee编程机器人怎么样我家宝宝对于WowWee编程机器人这样的…