只安装了Python是不能连接数据库的,还要安装Python连接MySQL的相关类库,Python2.7连接MySQL的类库很多,MySQL官方最新支持的Python为Python3.4.,如下图所示:
那么,在Python3.6上如何实现连接MySQL的功能呢?
python3.6不支持 import MySQLdb 改用为 import pymysql 模块,需要自行安装模块pymysql。
1、Python3.6安装模块pymysql
命令行安装
pip install pymysql
2、Python3.6连接MySQL示例
'''
Created on 2017年11月27日
@author: liuyazhuang
'''
#coding=utf-8
#导入pymysql的包
import pymysql
import pymysql.cursors
#获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库
#port 必须是数字不能为字符串
connection=pymysql.connect(host='localhost',
user='root',
password='root',
db='test',
port=3306,
charset='utf8')
try:
#获取一个游标
with connection.cursor() as cursor:
sql='select * from user'
cout=cursor.execute(sql)
print("数量: "+str(cout))
for row in cursor.fetchall():
#注意int类型需要使用str函数转义
print("ID: "+str(row[0])+' 名字: '+row[1]+" 性别: "+row[2])
connection.commit()
finally:
connection.close()
3、MySQL脚本
/*
Navicat MySQL Data Transfer
Source Server : localhost_3306
Source Server Version : 50550
Source Host : localhost:3306
Source Database : test
Target Server Type : MYSQL
Target Server Version : 50550
File Encoding : 65001
Date: 2017-11-27 23:44:28
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`sex` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', '刘亚壮', '男');