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抓取京东图书评论数据
Aug 31 Python
Python2.x中str与unicode相关问题的解决方法
Mar 30 Python
Python中列表的一些基本操作知识汇总
May 20 Python
Python中List.index()方法的使用教程
May 20 Python
基于python的Tkinter编写登陆注册界面
Jun 30 Python
解决win64 Python下安装PIL出错问题(图解)
Sep 03 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
django2.0扩展用户字段示例
Feb 13 Python
keras中的backend.clip用法
May 22 Python
keras分类之二分类实例(Cat and dog)
Jul 09 Python
python 统计代码耗时的几种方法分享
Apr 02 Python
Python 语言实现六大查找算法
Jun 30 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仿discuz分页效果代码
2008/10/02 PHP
ezSQL PHP数据库操作类库
2010/05/16 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
js 替换
2008/02/19 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
2016/09/21 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
简单实现js鼠标跟随效果
2020/08/02 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
13个最常用的Python深度学习库介绍
2017/10/28 Python
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
python数据挖掘需要学的内容
2019/06/23 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
后勤园长自我鉴定
2013/10/17 职场文书
建筑专业自荐信
2013/10/18 职场文书
竞聘上岗演讲稿范文
2014/01/10 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
2015学校师德师风工作总结
2015/04/22 职场文书