我正在使用 Putty 通过 SSH 进行 MySQL 转储,现在只是在控制台中一遍又一遍地输入 PuTTY,而 Ctrl+C 没有任何反应。
有人知道为什么会发生这种情况吗?
答案1
是的。您的 mysql 转储不是明文,但也包含终端控制字符。实际上,它包含二进制数据。如果您将任何二进制数据打印到屏幕上,您可能会遇到类似的闪烁,例如cat /bin/bash
。
这不应该发生。一些解决方案:
- 检查一下,你的 mysql 转储中的二进制数据在哪里(我认为,你可能有一些非 ascii 编码的文本数据)。
- 将输出编码转换为 UTF-7(是的,是 UTF-7,不是 UTF-8!)。UTF-7 编码也是 unicode,但它使用与 ascii 兼容的序列,而不是非 ascii 字节。只有当您的 mysql 转储仅包含有效的 utf8 时,它才会起作用。可以通过将其传输到转换
iconv
器命令来完成:mysqldump ...|iconv -f your-actual-encoding-which-is-probably-utf-8 -t utf-7
。 - 使用能够处理此类问题的查看器检查转储。例如,
vim
非常适合二进制数据编辑。如果您的问题是由大块引起的,hexedit
它也很有用。