(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

libmysqld_dev linux,Linux下python玩转MySQLdb相关推荐

  1. linux系统python截图不显示中文_Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题...

    本文主要向大家介绍了Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题,通过具体的内容向大家展现,希望对大家学习Linux运维知 ...

  2. Linux环境下Python的安装过程

    Linux环境下Python的安装过程 前言 一般情况下,Linux都会预装 Python了,但是这个预装的Python版本一般都非常低,很多 Python的新特性都没有,必须重新安装新一点的版本,从 ...

  3. linux环境下python机器学习环境的搭建

    linux环境下python机器学习环境的搭建## 1.准备工作,查看linux自带的python版本,以及建立一个测试目录用于存放测试文件: ubuntu@VM-164-254-ubuntu:/va ...

  4. Linux系统下Python的下载与安装

    Linux系统下Python的下载与安装 1- 下载安装前准备 linux中需提前安装前置依赖环境 命令如下: yum install wget zlib-devel bzip2-devel open ...

  5. linux环境下python编程指南,在Linux系统中搭建Python编程环境

    Linux系统是为编程而设计的,因此在大多数Linux计算机中都默认安装了Python. 1. 检查Python版本 在系统中运行应用程序Terminal(如果是Ubuntu,可按Ctrl+Alt+T ...

  6. linux运行阴阳师,Python玩网易阴阳师百鬼夜行

    [toc] Python玩网易阴阳师百鬼夜行 目标 使用Python实现网易阴阳师百鬼夜行环节的自动撒豆 原因 撒逗环节又伤屏幕,又伤手指,还无聊 累积了太多次数后不玩又觉得浪费 预备 Android ...

  7. linux python mysqldb安装包,linux环境下python中MySQLdb模块的安装方法

    前言 最近开始学习python数据库编程后,在了解了基本概念,打算上手试验一下时,卡在了MYSQLdb包的安装上,折腾了半天才解决.记录一下我在linux中安装此包遇到的问题. 系统是ubuntn15 ...

  8. linux环境下python 库模块安装

    今天要在一台线上服务器上部署一个python脚本,其中用到了MySQLdb,各种尝试下载源码(各种依赖库的相互不兼容),get/yum(这linux真纯净啊  这俩都没法用)安装,wget下载rpm包 ...

  9. linux环境下python的部署

    linux系统环境自带python2.6,但有时我们项目使用的版本可能是3.x以上等等,此时我们需要在linux中再安装项目所需的python版本,此时就涉及多版本共存问题了,很多同学在安装多个版本P ...

最新文章

  1. 美多商城之商品(商品列表页)
  2. 设计模式六大原则(5):迪米特法则
  3. python list的复制
  4. 推导和实现:全面解析高斯过程中的函数最优化(附代码公式)
  5. php 函数传值_传址_函数参数,php函数的传值与传址(引用)详解_PHP教程
  6. Java 7试用资源
  7. 左右声道测试_小说:少年参加测试,直接挑战十只狗恐兽,众人见了惊呼:SS级...
  8. mysql主码列允许null_mysql的一些基本操作
  9. bodymovin_基于Bodymovin在Vue上渲染After Effects动画
  10. ubuntu下载android11源码
  11. python数据类型转换、将数值转换为以万为单位的数_如何把Excel表格中金额为元的数转换成以万元为单位...
  12. nyoj248 BUYING FEED(贪心orDP)
  13. 每日牛客网-2022/1/4 错题解析
  14. MRT退休后的HEG(HDF-EOS To GeoTIFF Conversion Tool )工具安装
  15. 许多知名公司宕机现象频繁发生
  16. 关于全连接层 fully connect
  17. 怎么成为开源贡献者_我如何成为一名更好的设计师并通过Jolloficons为开源做贡献...
  18. 服务器系统没有界面,裸金属服务器操作系统有图形界面嘛
  19. 搜狗输入法截屏不能用了
  20. 大一新生的C语言选择题程序的尝试与苦难个人分析

热门文章

  1. 实时手势识别 【手部跟踪】Mediapipe中的hand
  2. python requests cookies请求_python+requests实现接口测试 - cookies的使用
  3. linux下tomcat脚本,Linux下重启多个 tomcat 服务的脚本(推荐)
  4. grade java_Gradle Java 构建入门
  5. java单线程上锁_关于Java多线程编程锁优化的深入学习
  6. 源码里没有configure_深入源码理解.NET Core中Startup的注册及运行
  7. des和aes相比较有哪些特点_栓流气力输送相比较传统的高速气力输送方式而言,有哪些优势?...
  8. db2 控制台执行创建函数语句_DB2数据库中创建定义函数
  9. alc236黑苹果驱动_台式机黑苹果独显驱动
  10. anaconda pandas运行不了_学习python你必须弄懂的 Python、Pycharm、Anaconda 三者之间的关系...