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 HTMLParser模块解析html获取url实例
Apr 08 Python
Python中list列表的一些进阶使用方法介绍
Aug 15 Python
基于python中的TCP及UDP(详解)
Nov 06 Python
python机器学习之随机森林(七)
Mar 26 Python
python读取excel指定列数据并写入到新的excel方法
Jul 10 Python
浅谈Pandas:Series和DataFrame间的算术元素
Dec 22 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 Python
详解Python中的分支和循环结构
Feb 11 Python
Python sqlite3查询操作过程解析
Feb 20 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 27 Python
python3读取autocad图形文件.py实例
Jun 05 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 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实现设计模式中的单例模式详解
2014/10/11 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
JavaScript 继承详解(三)
2009/07/13 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
使用 vue-i18n 切换中英文效果
2018/05/23 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
[00:14]护身甲盾
2019/03/06 DOTA
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
Python编写打字训练小程序
2019/09/26 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
python为什么会环境变量设置不成功
2020/06/23 Python
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
职工运动会邀请函
2014/01/19 职场文书
运动会开幕式邀请函
2014/01/22 职场文书
中学政教处工作总结
2015/08/13 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
Go语言grpc和protobuf
2022/04/13 Golang