mysql 如何将本地数据库的表数据上传到云服务?

jjjwad0x  于 2023-05-16  发布在  Mysql
关注(0)|答案(1)|浏览(236)

我想把数据库从本地上传到像AWS这样的云服务。我已经成功地从本地数据库创建了云数据库中的数据库和表和列,但无法传输数据。
我已经尝试使用outfile和infile命令使用python,但得到一个错误

mycursor3.execute("SELECT * FROM %s INTO OUTFILE '/var/lib/mysql-files/test.csv' "% (tb[0]))
sqlformula="LOAD DATA LOCAL INFILE 'test.csv' INTO TABLE %s "% (tb[0])
mycursor1.execute(sqlformula)
mydb1.commit()

文件已成功导出,但无法在云中导入。获取错误:mysql.connector.errors.InterfaceError:无法读取文件“test.csv”

bvpmtnay

bvpmtnay1#

假设你有你的问题的csv文件,你可以做以下事情:
1.将文件上传到配置了AWS CLI的EC2示例中,您可以访问您的数据库。
1.根据AWS文档,您可以将平面文件分解为以下内容
split -C 1024m -d test.csv test.part_
这会将文件分成多个小于1 GB的部分在类Unix系统(包括Linux)上。
1.使用mysqlimport实用程序将平面文件加载到Amazon RDS中。在这个例子中,我们告诉mysqlimport加载所有名为“test”的文件,扩展名以“part_”开头。这是加载在“拆分”示例中创建的所有文件的方便方法。使用--compress选项最小化网络流量。--fields-terminated-by =','选项用于CSV文件,--local选项指定传入数据位于客户端。如果没有--local选项,Amazon RDS DB示例将在数据库主机上查找数据,因此请始终指定--local选项。
对于Linux:

mysqlimport --local \
    --compress \
    --user=username \
    --password \
    --host=hostname \
    --fields-terminated-by=',' Acme test.part_*

下面是实际的文档:[https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.AnySource.html][1]

相关问题