如何使用Python从远程MySQL主机获取CSV格式的所有数据?
我知道使用mysqldump或选择*进入OUTFILE相当容易。。方法将所有数据从MySQL数据库中获取到本地目录中,但如何使用Python和远程MySQL主机实现类似的功能如何使用Python从远程MySQL主机获取CSV格式的所有数据?,python,mysql,Python,Mysql,我知道使用mysqldump或选择*进入OUTFILE相当容易。。方法将所有数据从MySQL数据库中获取到本地目录中,但如何使用Python和远程MySQL主机实现类似的功能 远程位置没有服务器目录,因此无法将其转储到服务器上。我需要将csv直接发送到我的计算机。考虑使用模块和模块迭代所有表并将行和列写入外部csv文件(另存为表名)的两种方法之一。两者都使用该包远程连接到MySQL,但任何MySQL数据库API都可以工作 CSV模块 import os import csv import pym
远程位置没有服务器目录,因此无法将其转储到服务器上。我需要将csv直接发送到我的计算机。考虑使用模块和模块迭代所有表并将行和列写入外部csv文件(另存为表名)的两种方法之一。两者都使用该包远程连接到MySQL,但任何MySQL数据库API都可以工作 CSV模块
import os
import csv
import pymysql
# CURRENT DIRECTORY OF SCRIPT
cd = os.path.dirname(os.path.abspath(__file__))
# OPEN DATABASE CONNECTION
db = pymysql.connect(host="localhost", port=####, db="databasename",
user="username", passwd="*****")
cur = db.cursor()
# OBTAIN ALL TABLES
cur.execute("SHOW TABLES;")
tables = cur.fetchall()
for t in tables:
columns = []
cur.execute("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS \
WHERE table_name = '{0}';".format(t[0]))
with open(os.path.join(cd, '{0}.csv'.format(t[0])), 'w', newline='') as f:
writer = csv.writer(f)
# COLUMNS
for col in cur.fetchall():
columns.append(col[0])
writer.writerow(columns)
# ROWS
cur.execute("SELECT * FROM {0};".format(t[0]))
for row in cur.fetchall():
writer.writerow(row)
f.close()
# CLOSE CURSOR AND DATABASE CONNECTION
cur.close()
db.close()
import os
import pandas as pd
import pymysql
cd = os.path.dirname(os.path.abspath(__file__))
# OPEN DATABASE CONNECTION
db = pymysql.connect(host="localhost", port=####, db="databasename",
user="username", passwd="*****")
cur = db.cursor()
# OBTAIN ALL TABLES
cur.execute("SHOW TABLES;")
tables = cur.fetchall()
for t in tables:
columns = []
# IMPORT DATA TO DATA FRAME
df = pd.read_sql("SELECT * FROM {0};".format(t[0]), db)
# EXPORT DATA FRAME TO CSV
df.to_csv(os.path.join(cd, '{0}.csv'.format(t[0])), index=False)
# CLOSE CURSOR AND DATABASE CONNECTION
cur.close()
db.close()
熊猫模块
import os
import csv
import pymysql
# CURRENT DIRECTORY OF SCRIPT
cd = os.path.dirname(os.path.abspath(__file__))
# OPEN DATABASE CONNECTION
db = pymysql.connect(host="localhost", port=####, db="databasename",
user="username", passwd="*****")
cur = db.cursor()
# OBTAIN ALL TABLES
cur.execute("SHOW TABLES;")
tables = cur.fetchall()
for t in tables:
columns = []
cur.execute("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS \
WHERE table_name = '{0}';".format(t[0]))
with open(os.path.join(cd, '{0}.csv'.format(t[0])), 'w', newline='') as f:
writer = csv.writer(f)
# COLUMNS
for col in cur.fetchall():
columns.append(col[0])
writer.writerow(columns)
# ROWS
cur.execute("SELECT * FROM {0};".format(t[0]))
for row in cur.fetchall():
writer.writerow(row)
f.close()
# CLOSE CURSOR AND DATABASE CONNECTION
cur.close()
db.close()
import os
import pandas as pd
import pymysql
cd = os.path.dirname(os.path.abspath(__file__))
# OPEN DATABASE CONNECTION
db = pymysql.connect(host="localhost", port=####, db="databasename",
user="username", passwd="*****")
cur = db.cursor()
# OBTAIN ALL TABLES
cur.execute("SHOW TABLES;")
tables = cur.fetchall()
for t in tables:
columns = []
# IMPORT DATA TO DATA FRAME
df = pd.read_sql("SELECT * FROM {0};".format(t[0]), db)
# EXPORT DATA FRAME TO CSV
df.to_csv(os.path.join(cd, '{0}.csv'.format(t[0])), index=False)
# CLOSE CURSOR AND DATABASE CONNECTION
cur.close()
db.close()
尝试