看了很多教程發現都非常的繁瑣,我一直以來力求簡潔
花了數小時時間,終於整理出較為完美的方案
系統:debian9
vim /etc/mysql/mariadb.conf.d/50-server.cnf
取消掉上圖中的這行代碼的注釋
import pymysql
from openpyxl import Workbook
def outfile(db,table):
#鏈接database
connection = pymysql.connect(host="",user="root",password="",database=db,charset="utf8",port=3306)
#創建可執行sql語句的游標
cursor = connection.cursor()
#查詢
sql = 'select * from {};'.format(table)
#執行
count = cursor.execute(sql)
#獲取全部結果
result = cursor.fetchall()
#print(result[0])
#獲取MySQL中的數據字段名稱
fields = cursor.description
#創建一個excel
wb = Workbook()
#創建一個sheet
sheet = wb.active
# 寫上字段信息
headers = ['A1','B1','C1','D1']
for index,i in enumerate(fields):
sheet[headers[index]] = i[0]
# 獲取並寫入數據段信息
for index,i in enumerate(result):
sheet.append(list(i))
print('正在保存第' + str(index) + '列信息')
#wb.save(f"/storage/emulated/0/{table}.xlsx")
wb.save(f"C:/Users/Administrator/Desktop/{table}.xls")
db,table = input("請輸入數據庫名和表名:").split(',')
outfile(db,table)
遇到的各種坑:
1.本地服務器mysql的3306端口得打開
2.內網穿透的配置文件端口指定3306
3.pymysql.connect
中的password
為數據庫密碼而不是root用戶的密碼
4.由於我是內網穿透pymysql.connect
中添加port參數為內網穿透提供的公網ip對應端口