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之引用和类属性的初步理解
May 15 Python
Python脚本获取操作系统版本信息
Dec 17 Python
Python 中 list 的各项操作技巧
Apr 13 Python
Python 函数基础知识汇总
Mar 09 Python
PyQT实现多窗口切换
Apr 20 Python
python打造爬虫代理池过程解析
Aug 15 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 Python
python pptx复制指定页的ppt教程
Feb 14 Python
.img/.hdr格式转.nii格式的操作
Jul 01 Python
python字典通过值反查键的实现(简洁写法)
Sep 30 Python
去除python中的字符串空格的简单方法
Dec 22 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
Jan 12 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
Smarty局部缓存的几种方法简介
2014/06/17 PHP
PHP使用内置dir类实现目录遍历删除
2015/03/31 PHP
分享PHP守护进程类
2015/12/30 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
php 基础函数
2017/02/10 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
完美解决AJAX跨域问题
2013/11/01 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
解决layui下拉框监听问题(监听不到值的变化)
2019/09/28 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
[47:08]OG vs INfamous 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python生成指定尺寸缩略图的示例
2014/05/07 Python
使用python加密自己的密码
2015/08/04 Python
Python 列表理解及使用方法
2017/10/27 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
python Socket网络编程实现C/S模式和P2P
2020/06/22 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
美国最大的珠宝首饰网上商城:Jewelry.com
2016/07/22 全球购物
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
印刷技术专业自荐信
2014/09/18 职场文书
新生入学欢迎词
2015/01/26 职场文书
信用卡催款律师函
2015/05/27 职场文书
电影开国大典观后感
2015/06/04 职场文书
公司酒会致辞
2015/07/30 职场文书
趣味运动会口号
2015/12/24 职场文书