Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python从远程MySQL主机获取CSV格式的所有数据?_Python_Mysql - Fatal编程技术网

如何使用Python从远程MySQL主机获取CSV格式的所有数据?

如何使用Python从远程MySQL主机获取CSV格式的所有数据?,python,mysql,Python,Mysql,我知道使用mysqldump或选择*进入OUTFILE相当容易。。方法将所有数据从MySQL数据库中获取到本地目录中,但如何使用Python和远程MySQL主机实现类似的功能 远程位置没有服务器目录,因此无法将其转储到服务器上。我需要将csv直接发送到我的计算机。考虑使用模块和模块迭代所有表并将行和列写入外部csv文件(另存为表名)的两种方法之一。两者都使用该包远程连接到MySQL,但任何MySQL数据库API都可以工作 CSV模块 import os import csv import pym

我知道使用mysqldump或选择*进入OUTFILE相当容易。。方法将所有数据从MySQL数据库中获取到本地目录中,但如何使用Python和远程MySQL主机实现类似的功能


远程位置没有服务器目录,因此无法将其转储到服务器上。我需要将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()
尝试