我试图通过命令行导入mysqldump文件,但继续收到错误.我使用以下命令从我的其他服务器转储文件:
mysqldump -u XXX -p database_name > database.sql
Run Code Online (Sandbox Code Playgroud)
然后我尝试导入文件:
mysql -u XXX -p database_name < database.sql
Run Code Online (Sandbox Code Playgroud)
它加载一小部分然后卡住.我收到的错误是:
ERROR at line 1153: Unknown command '\''.
Run Code Online (Sandbox Code Playgroud)
我在文件中检查了该行:
awk '{ if (NR==1153) print $0 }' database.sql >> line1153.sql
Run Code Online (Sandbox Code Playgroud)
它的大小恰好超过1MB,仅适用于该行.
任何想法可能会发生在这里?
小智 20
您的数据库中有二进制blob,尝试将--hex-blob添加到mysqldump语句中.
你知道发生了什么 - 你的 SQL 中有一个额外的单引号!O
如果你有'awk',你可能有'vi',它会很容易地打开你的line1153.sql 文件,并允许你在你的数据库中找到导致问题的值。
或者... 该行可能很大,因为它包含多行。您还可以使用--skip-extended-insertmysqldump 选项,以便每一行都有一个单独的插入语句。
祝你好运。