mysql - 如何打开和使用在转储中生成的非常大的 .SQL 文件?
问题描述
我有一个非常大的 .SQL 文件,有 90 GB
它是通过服务器上的转储生成的:
mysqldump -u root -p siafi > /home/user_1/siafi.sql
我在装有 Ubuntu 16.04 和 MySQL Community Server (8.0.16) 的计算机上下载了这个 .SQL 文件。它有 8GB 的 RAM
所以我在终端中做了这些步骤:
# Access
/usr/bin/mysql -u root -p
# I create a database with the same name to receive the .SQL information
CREATE DATABASE siafi;
# I establish the privileges. User reinaldo
GRANT ALL PRIVILEGES ON siafi.* to reinaldo@localhost;
# Enable the changes
FLUSH PRIVILEGES;
# Then I open another terminal and type command for the created database to receive the data from the .SQL file
mysql --user=reinaldo --password="type_here" --database=siafi < /home/reinaldo/Documentos/Code/test/siafi.sql
我用其他 .SQL 文件键入了这些相同的命令,只有较小的文件,最大为 2GB。它工作正常
但是这个 90GB 的文件正在处理超过 12 个小时而没有停止。我不知道它是否有效
请问有没有更有效的方法来做到这一点?也许拆分 .SQL 文件?
解决方案
将文件分成更小的块并分别处理它们。
您可能正在达到日志记录的高水位标记并且 mysql 正在尝试回滚所有内容,这是一个缓慢的过程。
将文件拆分为大约 1Gb 的块,在整行上中断。也许使用:
split -l 1000000 bigfile.sql part.
然后使用您当前的命令按顺序运行它们。
您必须进行试验split
才能获得正确的大小,并且您还没有说出您的操作系统是什么,并且split
实现/选项会有所不同。split --number=100
为你工作。
推荐阅读
- javascript - how to determine whether that extension is for an audio type?
- joomla - 如何解决“谷歌索引的所有页面的所有标题中重复一个单词?”
- ios - How to make custom label as UINavBar disappear when scrolling down a table view?
- python - How to get combination of combinations in pandas dataframe?
- python - 在 MatplotLib 中调整 X 轴上的日期和修复图例
- php - Wordpress 多站点:警告:检测到现有的 WordPress 网络
- swift - What is the correct syntax for using Publishers.debounce() in Swift Combine?
- dns - Request to Cloudflare DNS from Cloudflare worker not returning the DNS result
- c# - 在我编辑其 itemssource(这是一个 DB)后,我无法更新列表框的内容
- php - Sage Accounting API UnexpectedError