我正在导入一个相当大的数据库.该.sql
文件中有近1,000,000行.问题是我在尝试导入数据库时遇到语法错误.它说:
错误1064(42000),第8428420行:您的SQL语法中有错误; 检查与您的MySQL服务器版本对应的手册,以便在"
致命错误:最大执行时间超过600秒 "附近使用正确的语法
通常我只是打开.sql文件并修复错误.但我的电脑真的很难打开这个文件.
导入MySQL数据库时有什么办法可以忽略错误吗?
为什么在PowerShell中没有实现输入重定向?
要做这样的事情:
mysql -u root < create.sql
Run Code Online (Sandbox Code Playgroud)
我不得不切换到"cmd.exe".
有没有在PowerShell中执行此操作的替代方法?
请注意,输出重定向">"在PowerShell中实现.在给出答案之前请考虑这个.
随着cmd
我跑mysql -uroot database < filename.sql
导入一个数据库转储(从文件中读取并传递到MySQL).但是,<
在powershell中是"保留".
相反,在powershell我使用get-content filename.sql | mysql -uroot database
.需要注意的是,powershell 在将其传递给MySQL之前会filename.sql
完全读入内存,而对于大型数据库转储,它只会耗尽内存.
显然,我可以通过执行此操作,cmd
但是我有一些PowerShell脚本可以自动执行各种任务,我不希望必须批量重写它们.在这种特殊情况下,filename.sql
是自动启动时通过PS参数指定的变量.
那么我该如何解决这个内存限制呢?有没有其他方法可以直接将文件内容传递给MySQL?