只安裝了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', '劉亞壯', '男');