Linux下利用 Python连接mysql数据库一个很好的例子

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 原文转载自:http://my.oschina.net/davehe/blog/128361 1 安装Python的Mysql包 root@10.

原文转载自:http://my.oschina.net/davehe/blog/128361


1 安装Python的Mysql包

root@10.1.1.45:~# apt-get install python-mysqldb
root@10.1.1.45:~# python
Python 2.5.2 (r252:60911, Jan  4 2009, 21:59:32) 
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>

  这里导入MySQLdb没有报错,就说明安装成功.


2 下面就可以连接数据库,可以进行增删改操作.

root@10.1.1.45:python# cat create.py 
#!/usr/bin/env python
#coding=utf-8

#导入相关模块
import MySQLdb

#建立和mysql数据库的连接
conn = MySQLdb.connect(host='localhost',user='root',passwd='davehe')
#获取游标
curs = conn.cursor()
#执行SQL,创建一个数据库
curs.execute("create database pythondb")
#选择连接哪个数据库
conn.select_db('pythondb')
#执行SQL,创建一个表
curs.execute("create table test(id int,message varchar(50))")
#插入一条记录
value = [1,"davehe"]
curs.execute("insert into test values(%s,%s)",value)
#插入多条记录
values = []
for i in range(20):
    values.append((i,'hello mysqldb' + str(i)))
curs.executemany("insert into test values(%s,%s)",values)
#提交修改                               
conn.commit()
#关闭游标连接,释放资源
curs.close()
#关闭连接
conn.close()
root@10.1.1.45:python# ./create.py


3 下面利用python查看mysql里刚添加的记录.

root@10.1.1.45:python# cat select.py 
#!/usr/bin/env python
#coding=utf-8

#导入相关模块
import MySQLdb

#建立和mysql数据库的连接
conn = MySQLdb.connect(host='localhost',user='root',passwd='hc1226')
#获取游标
curs = conn.cursor()
#选择连接哪个数据库
conn.select_db('pythondb')
#查看共有多少条记录
count = curs.execute('select * from test')
print "一共有%s条记录" % count
#获取一条记录,以一个元组返回
result = curs.fetchone()
print "当前的一条记录 ID:%s message:%s" % result
#获取后10条记录,由于之前执行了getchone(),所以游标已经指到第二条记录,下面也就从第二条记录开始返回
results = curs.fetchmany(10)
for r in results:
    print r
#重置游标位置,0,为偏移量,mode = relative(默认)
curs.scroll(0,mode='absolute')
#获取所有记录
results = curs.fetchall()
for r in results:
    print r

#提交修改
conn.commit()
#关闭游标连接,释放资源
curs.close()
#关闭连接
conn.close()

root@10.1.1.45:python# ./select.py 
一共有21条记录
当前的一条记录 ID:1 message:davehe
(0L, 'hello mysqldb0')
(1L, 'hello mysqldb1')
(2L, 'hello mysqldb2')
(3L, 'hello mysqldb3')
(4L, 'hello mysqldb4')
(5L, 'hello mysqldb5')
(6L, 'hello mysqldb6')
(7L, 'hello mysqldb7')
(8L, 'hello mysqldb8')
(9L, 'hello mysqldb9')
(1L, 'davehe')
(0L, 'hello mysqldb0')
(1L, 'hello mysqldb1')
(2L, 'hello mysqldb2')
(3L, 'hello mysqldb3')
(4L, 'hello mysqldb4')
(5L, 'hello mysqldb5')
(6L, 'hello mysqldb6')
(7L, 'hello mysqldb7')
(8L, 'hello mysqldb8')
(9L, 'hello mysqldb9')
(10L, 'hello mysqldb10')
(11L, 'hello mysqldb11')
(12L, 'hello mysqldb12')
(13L, 'hello mysqldb13')
(14L, 'hello mysqldb14')
(15L, 'hello mysqldb15')
(16L, 'hello mysqldb16')
(17L, 'hello mysqldb17')
(18L, 'hello mysqldb18')
(19L, 'hello mysqldb19')


4 附录

   1 connect函数的常用参数

   user             #用户名

   password     #用户密码 

   host             #主机名

   database     #数据库名


    2 connect函数会返回连接对象,连接对象方法

    close()        #关闭连接之后,连接对象和它的游标均不可用

    commit()     #如果支持的话就提交挂起的事务,否则不做任何事

    rollback()    #回滚挂起的事务(可能不可用)

    cursor()      #返回连接的游标对象


    3 游标对象方法

    close()                               #关闭游标

    execute(oper[,params])     #执行SQL操作,可能使用参数

    executemany(oper,pseq)   #对序列中的每个参数执行SQL操作

    fetchone()                         #把查询的结果集中的下一行保存为序列,或者None

    fetchmany([size])              #获取查询结果集中的多行,默认为1

    fetchall()                           #将所有(剩余)的行作为序列的序列




相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
11天前
|
JavaScript 关系型数据库 API
Nest.js 实战 (二):如何使用 Prisma 和连接 PostgreSQL 数据库
这篇文章介绍了什么是Prisma以及如何在Node.js和TypeScript后端应用中使用它。Prisma是一个开源的下一代ORM,包含PrismaClient、PrismaMigrate、PrismaStudio等部分。文章详细叙述了安装PrismaCLI和依赖包、初始化Prisma、连接数据库、定义Prisma模型、创建Prisma模块的过程,并对比了Prisma和Sequelize在Nest.js中的使用体验,认为Prisma更加便捷高效,没有繁琐的配置。
Nest.js 实战 (二):如何使用 Prisma 和连接 PostgreSQL 数据库
|
2天前
|
SQL 关系型数据库 MySQL
如何在PHP中连接到数据库?
在PHP中连接MySQL数据库常用的方法是MySQLi与PDO。MySQLi专为MySQL设计,支持面向对象及过程化编程,并提供预处理语句防止SQL注入。
|
9天前
|
缓存 分布式计算 DataWorks
DataWorks操作报错合集之连接数据库时出现了通信链接失败的报错,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
9天前
|
SQL DataWorks Java
DataWorks操作报错合集之在与某个数据库服务器建立或保持通信连接时遇到报错,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
17天前
|
ARouter 关系型数据库 MySQL
Django项目同时连接多个不同的数据库(7)
【7月更文挑战第7天】在Django项目中配置连接多个数据库,你需要: 1. 在`settings.py`中配置多个数据库, 2. 在`settings.py`内设置数据库路由,指定每个应用使用的数据库,
33 2
|
21天前
|
前端开发 NoSQL 数据库
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
|
21天前
|
弹性计算 NoSQL 网络安全
软件开发常见之云数据库Redis连接不上如何解决,修改配置后,需要重启下redis服务,配置才能生效呢,是重启,而不是重载配置,最后导致的问题是点击了的重启,配置修改了之后必须点击重启,而不是修改
软件开发常见之云数据库Redis连接不上如何解决,修改配置后,需要重启下redis服务,配置才能生效呢,是重启,而不是重载配置,最后导致的问题是点击了的重启,配置修改了之后必须点击重启,而不是修改
|
2天前
|
Oracle 关系型数据库 MySQL
入职必会-开发环境搭建17-IDEA连接数据库
IntelliJ IDEA集成了众多插件,方便开发者使用,使用IDEA自带的Database模块就可以很方便的配置、连接数据库,在 IntelliJ IDEA 中连接数据库,可以按照以下步骤进行操作。
|
5天前
|
SQL 数据库 数据安全/隐私保护
为什么程序连接不同的数据库要使用不同的账号
为什么程序连接不同的数据库要使用不同的账号
|
10天前
|
DataWorks 关系型数据库 MySQL
DataWorks操作报错合集之从OceanBase(OB)数据库调度数据到MySQL数据库时遇到连接报错,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。