我的本地开发服务器上有一个非常大的MySQL表:超过800万行数据.我使用LOAD DATA INFILE成功加载了表.
我现在希望导出这些数据并将其导入远程主机.
我尝试了LOAD DATA LOCAL INFILE到远程主机.但是,大约15分钟后,与远程主机的连接失败.我认为唯一的解决方案是我将数据导出到许多较小的文件中.
我可以使用的工具是PhpMyAdmin,HeidiSQL和MySQL Workbench.
我知道如何导出为单个文件,但不是多个文件.我怎样才能做到这一点?
Ric*_*lli 18
我刚刚导入/导出了一个包含50万条记录的(分区)表,只需要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
Run Code Online (Sandbox Code Playgroud)
您的行应该是(从终端):
从mysql中的db_name导出到backupfile.sql:
mysqldump -u user -p db_name > backupfile.sql
Run Code Online (Sandbox Code Playgroud)
从备份文件导入到mysql中的db_name:
mysql -u user -p db_name < backupfile.sql
Run Code Online (Sandbox Code Playgroud)
为了拆分信息,您有两个选择:
每次使用一个选项在db_name之后添加一个表名来导出一个表,如下所示:
mysqldump -u user -p db_name table_name > backupfile_table_name.sql
压缩文件(文本文件)非常有效,可以将其最小化到原始大小的20%-30%。
将文件复制到远程服务器应使用scp(安全副本)完成,并且应使用ssh(通常)进行交互。
祝好运。