我用MySQL 5.7在Windows计算机上创建了一个测试数据库,并填充了许多数据记录。现在,我用mysqldump创建了一个数据库转储,并希望在我的服务器上导入它(Debian,也是MySQL 5.7)。
在导入转储过程中,我收到了几条错误消息,这些消息都没有帮助。因此,我使用nano编辑器查看了转储文件,发现内容不能正确显示:
��-^@-^@ ^@M^@y^@S^@Q^@L^@ ^@d^@u^@m^@p^@ ^@1^@0^@.^@1^@3^@ ^@ ^@D^@i^@s^@t^@r^$
^@
^@-^@-^@
^@
^@-^@-^@ ^@H^@o^@s^@t^@:^@ ^@l^@o^@c^@a^@l^@h^@o^@s^@t^@ ^@ ^@ ^@ ^@D^@a^@t^@a^$
^@
...但是,如果我在Windows下打开转储(如Notepad++ ),一切都可以完美地显示。
所以我想到了FTP上传过程中的一个错误。但是,如果我将一个文件从Windows传输到Linux,然后再将它传输回来,那么新文件在Windows下仍然是可读的,但在Linux下是不可读的。
有人能给我个提示吗?谢谢!
小更新:我就是这样做转储的:
.\mysqldump.exe -u root --databases m_data > D:\m_data_dump.sql更新2:我还尝试使用显式字符集导出:
.\mysqldump.exe -u root --default-character-set=utf8mb4 --databases m_data > D:\m_data_dump.sql并以:
mysql -u root -p --default-character-set=utf8mb4 < m_data_dump.sql但山姆的结果。
发布于 2018-12-17 17:30:20
显示的转储文件的内容似乎是UTF16 --这可能是Windows上重定向操作符的结果(特别是在使用PowerShell的情况下)。
为了避免Windows重定向操作符干扰mysqldump程序发出的数据的编码/格式设置,在转储时使用--结果-file=filename。
请参阅MySQL文档中的https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_米斯德_结果档案命令行选项。
https://dba.stackexchange.com/questions/224866
复制相似问题