我在本地开发服务器上有一个非常大的MySQL表:超过800万行数据。我使用LOAD DATA INFILE成功地加载了该表。
现在我想将这些数据导出并导入到远程主机上。
我尝试使用LOAD DATA LOCAL INFILE到远程主机。然而,大约15分钟后与远程主机的连接失败。我认为唯一的解决方案是将数据导出为多个较小的文件。
我可以使用PhpMyAdmin、HeidiSQL和MySQL Workbench等工具。
我知道如何导出单个文件,但不知道如何导出多个文件。我该怎么做?
我在本地开发服务器上有一个非常大的MySQL表:超过800万行数据。我使用LOAD DATA INFILE成功地加载了该表。
现在我想将这些数据导出并导入到远程主机上。
我尝试使用LOAD DATA LOCAL INFILE到远程主机。然而,大约15分钟后与远程主机的连接失败。我认为唯一的解决方案是将数据导出为多个较小的文件。
我可以使用PhpMyAdmin、HeidiSQL和MySQL Workbench等工具。
我知道如何导出单个文件,但不知道如何导出多个文件。我该怎么做?
我刚刚对一个拥有5000万条记录的(分区)表进行了导入/导出操作,它只需要在一台相对较快的计算机上花费2分钟就能够完成导出,而在我的较慢的桌面电脑上花费15分钟就能够完成导入。没有必要分割文件。
mysqldump是你的好帮手,并且如果你知道有很多数据,最好将其压缩。
@host1:~ $ mysqldump -u <username> -p <database> <table> | gzip > output.sql.gz
@host1:~ $ scp output.sql.gz host2:~/
@host1:~ $ rm output.sql.gz
@host1:~ $ ssh host2
@host2:~ $ gunzip < output.sql.gz | mysql -u <username> -p <database>
@host2:~ $ rm output.sql.gz
mysqldump -u user -p db_name > backupfile.sql
从备份文件导入到你的MySQL数据库:
mysql -u user -p db_name < backupfile.sql
每次使用在db_name后添加表名的选项导出一个表,如下所示:
mysqldump -u user -p db_name table_name > backupfile_table_name.sql
压缩文件(文本文件)非常高效,可以将其最小化为原始大小的20%-30%。
将文件复制到远程服务器应该使用scp(安全复制),并且交互应该使用ssh(通常为此目的)。
祝你好运。
mysqldump -u root -ppassword yourdb yourtable > table_name.sql
mysql -u username -ppassword yourotherdb < table_name.sql
使用mysqldump
将表导出到文件中。
然后使用带有-z
选项的tar
压缩文件。
使用ftp
、sftp
或其他文件传输工具将其传输到远程服务器。
然后在远程服务器上解压文件。
使用mysql
导入文件。
没有必要拆分原始文件或将其导出为多个文件。
您可以使用mysql_export_explode https://github.com/barinascode/mysql-export-explode
<?php
#Including the class
include 'mysql_export_explode.php';
$export = new mysql_export_explode;
$export->db = 'dataBaseName'; # -- Set your database name
$export->connect('host','user','password'); # -- Connecting to database
$export->rows = array('Id','firstName','Telephone','Address'); # -- Set which fields you want to export
$export->exportTable('myTableName',15); # -- Table name and in few fractions you want to split the table
?>
At the end of the SQL files are created in the directory where the script is executed in the following format
---------------------------------------
myTableName_0.sql
myTableName_1.sql
myTableName_2.sql
...