前提條件是本機已安裝了mysql,mysql安裝流程請查看:mysq安裝
mysql-connector 驅動安裝
使用pip3命令來安裝mysql-connector(由於本機存在多版本python,故要指定pip版本)
在windos命令窗口執行如下命令:
python3 -m pip3 install mysql-connector
#python3 -m pip install mysql-connector
提示:pip3orpip模塊不存在
找不到pip3,沒找到pip3模塊
直接到python3.5安裝路徑下找,發現是有pip、pip3、pip3.5,但是訪問時報錯。
D:\Software\Python35\Scripts
在window命令窗口執行如下命令,重新生成pip3
python3 -m ensurepip
重新查看D:\Software\Python35\Scripts,pip3及pip3.5均已更新
重新在windows命令窗口執行:
#python3 -m pip3 install mysql-connector
python3 -m pip install mysql-connector
用pip3執行依舊不成功,只能換成pip執行。
在Pycharm中的TestDb項目中嘗試引入模塊
import mysql.connector
運行代碼後居然還是報錯,提示沒有mysql.connector這個模塊。
後來重新設置了TestDb項目的Project Interpreter爲python3.5
運行代碼結果:Process finished with exit code 0 證明代碼運行正常。
1、連接數據庫
#-*- coding:utf-8 -*-
import mysql.connector
mydb = mysql.connector.connect(
host='127.0.0.1', # 數據庫主機地址
user='****', # 數據庫用戶名
passwd='*****' # 數據庫密碼
)
print(mydb)
執行結果,已正常連接。
D:\Software\Python35\python3.exe D:/Software/python/PycharmProjects/TestDb/connectDB.py
<mysql.connector.connection.MySQLConnection object at 0x00000000011767F0>
Process finished with exit code 0
創建數據庫
在原來代碼的基礎上追加如下代碼:
mycursor = mydb.cursor()
mycursor.execute('CREATE DATABASE enterprise_db_test')
執行結果:成功
Process finished with exit code 0
查看是否創建數據庫成功,可以show數據庫,展示數據庫列表
#-*- coding:utf-8 -*-
import mysql.connector
mydb = mysql.connector.connect(
host='127.0.0.1', # 數據庫主機地址
user='*****', # 數據庫用戶名
passwd='*****' # 數據庫密碼
)
mycursor = mydb.cursor()
#mycursor.execute('CREATE DATABASE enterprise_db_test')
mycursor.execute('show databases')
for x in mycursor:
print(x)
輸出結果:
D:\Software\Python35\python3.exe D:/Software/python/PycharmProjects/TestDb/connectDB.py
('information_schema',)
('enterprise_db_test',)
('guest',)
('mysql',)
('performance_schema',)
('run00b',)
('school',)
('sys',)
Process finished with exit code 0
直接連接已創建的數據庫
#-*- coding:utf-8 -*-
import mysql.connector
mydb = mysql.connector.connect(
host='127.0.0.1', # 數據庫主機地址
user='****', # 數據庫用戶名
passwd='*****', # 數據庫密碼
database='enterprise_db_test' # 連接已有數據庫,如果不存在則報錯
)
2、執行sql文件
#-*- coding:utf-8 -*-
__author__ = 'grit'
__time__ = '2019-11-28'
import mysql.connector
import os
def get_sql_files():
sql_files = []
# listdir()返回指定路徑下的文件和文件夾列表 os.path.dirname(path):去掉文件名,返回目錄
# os.path.abspath(__file__):獲取腳本完整路徑
files = os.listdir(os.path.dirname(os.path.abspath(__file__)))
for file in files:
if os.path.splitext(file)[1] == '.sql':
sql_files.append(file)
return sql_files
def connectMydb():
print('開始連接數據庫')
#打開數據庫
mydb = mysql.connector.connect(
host='****', # 數據庫主機地址
user='****', # 數據庫用戶名
passwd='****', # 數據庫密碼
database='enterprise_db_test', # 連接已有數據庫,如果不存在則報錯
autocommit=True
)
# 使用cursor()方法創建一個遊標對象 cursor
cursor = mydb.cursor()
for file in get_sql_files():
executeScriptsFromFile(file, cursor)
mydb.close()
def executeScriptsFromFile(filename,cursor):
fd = open(filename, 'r', encoding='utf-8')
sqlFile = fd.read()
fd.close()
sqlCommands = sqlFile.split(';')
for command in sqlCommands:
try:
cursor.execute(command)
# cursor.connection.commit() # 執行commit操作,插入語句才能生效
except Exception as msg:
print(msg)
print('sql執行完成')
if __name__ == "__main__":
connectMydb()