Python3.6实现连接mysql或mariadb的方法分析


Posted in Python onMay 18, 2018

本文实例讲述了Python3.6实现连接mysql或mariadb的方法。分享给大家供大家参考,具体如下:

python3.6的安装查看前面一篇文章https://3water.com/article/108938.htm

mysql或mariadb数据库的安装查看以前的相关文章,这里不再赘述

首先在mariadb数据库中创建相应的库和表:

MariaDB [(none)]> create database oracle default character set utf8 default collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
MariaDB [oracle]> create table oracle_indexmonitor( index_name varchar(200) not null, ipaddress varchar(39) not null, tnsname varchar(100) not null, insert_time timestamp default current_timestamp, primary key(index_name) ) engine=InnoDB default charset=utf8; 
Query OK, 0 rows affected (0.01 sec)
MariaDB [oracle]> desc oracle_indexmonitor;
+-------------+--------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+-------------------+-------+
| index_name | varchar(200) | NO | PRI | NULL | |
| ipaddress | varchar(39) | NO | | NULL | |
| tnsname | varchar(100) | NO | | NULL | |
| insert_time | timestamp | NO | | CURRENT_TIMESTAMP | |
+-------------+--------------+------+-----+-------------------+-------+
4 rows in set (0.00 sec)

安装需要用到的模块pymysql:

[root@wadeson Python-3.6.1]# /usr/local/python36/bin/pip3 install PyMysql
Collecting PyMysql
Downloading PyMySQL-0.7.11-py2.py3-none-any.whl (78kB)
100% |¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?¨?| 81kB 87kB/s 
Installing collected packages: PyMysql
Successfully installed PyMysql-0.7.11

检测模块是否安装成功:

[root@wadeson Python-3.6.1]# python
Python 3.6.1 (default, Jul 13 2017, 15:41:38) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymysql
>>> exit()

然后编写py脚本:

[root@wadeson Python-3.6.1]# cd /root/tools/scripts/
[root@wadeson scripts]# vim connectmysql.py
#!/usr/bin/python
#coding=utf8
import pymysql
#连接数据库,host、账号、密码、库
db = pymysql.connect('localhost','root','redhat','oracle')
#创建游标使用的cursor方法
cursor = db.cursor()
#使用execute方法执行sql语句
cursor.execute('select version()')
#使用fetchone方法获取单条数据
data = cursor.fetchone()
print('Database version:%s' % data)
#关闭游标,并关闭数据库
cursor.close()
db.close()
[root@wadeson scripts]# python connectmysql.py 
Database version:5.5.55-MariaDB

note:

Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
fetchall(): 接收全部的返回结果行.
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。

note:如果使用以上方法安装报错:ssl模块不可用

那么可以使用编译安装:

wget https://pypi.python.org/packages/f5/d9/976c885396294bb1c4ca3d013fd2046496cde2efbb168e4f41dd12552dd9/PyMySQL-0.7.6.tar.gz#md5=d1353d9ad6e6668c3c463603b12cadb0
tar xf PyMySQL-0.7.6.tar.gz
cd PyMySQL-0.7.6
python setup.py build
python setup.py install

然后验证是否安装成功:

[root@oracle PyMySQL-0.7.6]# python 
Python 3.6.1 (default, Jul 13 2017, 14:31:18) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymysql
>>>

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中利用函数装饰器实现备忘功能
Mar 30 Python
django基础之数据库操作方法(详解)
May 24 Python
Python加密方法小结【md5,base64,sha1】
Jul 13 Python
Django开发中的日志输出的方法
Jul 02 Python
Python 字符串转换为整形和浮点类型的方法
Jul 17 Python
Python解析Excle文件中的数据方法
Oct 23 Python
Python Series从0开始索引的方法
Nov 06 Python
python__name__原理及用法详解
Nov 02 Python
python3实现单目标粒子群算法
Nov 14 Python
Python numpy.zero() 初始化矩阵实例
Nov 27 Python
Numpy 多维数据数组的实现
Jun 18 Python
利用Python实时获取steam特惠游戏数据
Jun 25 Python
对python中使用requests模块参数编码的不同处理方法
May 18 #Python
Python3.6连接Oracle数据库的方法详解
May 18 #Python
python爬虫之模拟登陆csdn的实例代码
May 18 #Python
解决phantomjs截图失败,phantom.exit位置的问题
May 17 #Python
python自动截取需要区域,进行图像识别的方法
May 17 #Python
Python使用Phantomjs截屏网页的方法
May 17 #Python
Python 实现网页自动截图的示例讲解
May 17 #Python
You might like
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
2012/03/01 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
ThinkPHP之getField详解
2014/06/20 PHP
Zend Framework教程之视图组件Zend_View用法详解
2016/03/05 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
浅析Node.js非对称加密方法
2018/01/29 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
Python自动化测试ConfigParser模块读写配置文件
2016/08/15 Python
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
python使用mysql的两种使用方式
2018/03/07 Python
Python加载带有注释的Json文件实例
2018/05/23 Python
Python更新所有已安装包的操作
2020/02/13 Python
基本款天堂:Everlane
2017/05/13 全球购物
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
法人身份证明书
2014/10/08 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android