【问题标题】:Mysql import large SQL file coming from SQL Server 2012Mysql 导入来自 SQL Server 2012 的大型 SQL 文件
【发布时间】:2016-02-27 00:40:46
【问题描述】:

我无法在命令行中使用 mysql 成功导入 MySQL,而我在 Windows 上使用 XAMPP。

我在 stackoverflow 上搜索并搜索了解决方案,但没有一个有效。我对 php.ini 和 my.ini 进行了更高的限制:

  • max_allowed_pa​​cket = 64M
  • wait_timeout = 6000
  • max_allowed_pa​​cket = 64M

目前我有一个 450Mb 大小的 .sql 文件,当我尝试使用命令行将其导入 mysql 时。

mysql.exe -u root mcs 错误:ASCII '\0' 出现在 声明,但这是不允许的,除非选项 --binary-mode 是 启用并且mysql以非交互模式运行。

我用这个命令再试一次:

mysql.exe -u root --binary-mode mcs ERROR 2006 (HY000) at line 1: MySQL server has gone away.

更新

我正在使用 SQL Server Management Studio,似乎可以将 SQL 文件构建为 ANSI 或 UCS-2(我不知道最好选择什么)。

我只用一个大小为 3Mb 的表构建了一个 .sql 文件,并且由于语法错误而在导入时不断崩溃。

这是我的 3Mb .sql 文件 (ANSI) 的几行:

USE [mcs]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[inventory](
    [item] [nvarchar](20) NOT NULL,
    [descr] [nvarchar](255) NULL,
    [daymin] [money] NULL,
    [days_min] [smallint] NULL,
    [weekchg] [money] NULL,
    [monthchg] [money] NULL,
) ON [PRIMARY]  


GO
SET IDENTITY_INSERT [dbo].[inventory] ON 

INSERT [dbo].[inventory] ([item], [descr], [daymin], [days_min], [weekchg], [monthchg]) VALUES (N'AGRAF8MM', 8mm Arrow', 11.8500, 0, 0.0000, 0.0000)

【问题讨论】:

  • MySQL的错误日志中可能有线索。
  • .sql文件是什么字符编码的?是 UTF-16 还是 UCS-2?
  • 你是如何创建这个文件的?前几行是什么样的?
  • @BaconBits 我不知道我认为它应该是 UTF-8 还是 UTF-16,但我还没有找到如何知道它。
  • 您可以通过可以告诉您的文本编辑器打开文件来很好地猜测编码是什么。例如,Notepad++ 在窗口底部显示当前编码。它将显示 ANSI、UTF-8 或 UCS-2(或多或少是 UTF-16)。

标签: mysql sql-server


【解决方案1】:

听起来你还没有 ascii 文本文件。它可能是gziped。 如果您在 cli 中键入此内容,输出是什么?应该是dumpfile.sql: ASCII text

> file dumpfile.sql

如果不是 ASCII 文本,请尝试解压缩。

编辑该死的你在 Windows 上。尝试通过gui找到它。

【讨论】:

  • 我发现 ASCII 参数默认是 unicode。我更改为 ASCII 并创建了一个新的 .sql 文件。我尝试再次导入并返回新闻
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-19
  • 1970-01-01
  • 1970-01-01
  • 2015-06-08
  • 1970-01-01
  • 2013-05-27
  • 1970-01-01
相关资源
最近更新 更多