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对指定目录下文件进行批量重命名的方法
Apr 18 Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 Python
详解Python3中ceil()函数用法
Feb 19 Python
django-rest-framework 自定义swagger过程详解
Jul 18 Python
python中count函数简单的实例讲解
Feb 06 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
Feb 15 Python
Python文件操作基础流程解析
Mar 19 Python
Python预测2020高考分数和录取情况
Jul 08 Python
Python lambda表达式原理及用法解析
Aug 18 Python
如何利用python生成MD5并去重
Dec 07 Python
利于python脚本编写可视化nmap和masscan的方法
Dec 29 Python
Linux系统下升级pip的完整步骤
Jan 31 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
php中文字母数字验证码实现代码
2008/04/25 PHP
php流量统计功能的实现代码
2012/09/29 PHP
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
2014最热门的24个php类库汇总
2014/12/18 PHP
CI框架中数据库操作函数$this->db->where()相关用法总结
2016/05/17 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
页面版文本框智能提示JS代码
2009/11/20 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
Bootstrap3 图片(响应式图片&图片形状)
2017/01/04 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
JS实现纸牌发牌动画
2021/01/19 Javascript
python输入错误密码用户锁定实现方法
2017/11/27 Python
Python处理中文标点符号大集合
2018/05/14 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
单位门卫岗位职责
2013/12/20 职场文书
工程业务员岗位职责
2013/12/31 职场文书
期中考试后的反思
2014/02/08 职场文书
2015学校年度工作总结
2015/05/11 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书