3

我整天都在做这个,现在我被困住了,所以希望有人可以帮助我:)

挑战。

将数据从 MS SQL 迁移到 MySQL。

我收到的 MS SQL 作为 bak 文件,我在装有 Windows 7 家庭版的 PC 上使用 SQL Server Management Studio 恢复了该文件。

我在网络服务器上创建了一个源 MySQL 数据库,运行 LAMP。

解决方案(也许)我目前正在尝试转换数据库,最初只是一个用于测试的表,使用 MySQL Workbench 和 database->migrate 向导,但现在我被困在 Bulk Data Transfer 中。我希望这一步能够在我的 MySQL 数据库中创建表并传输数据,但这永远不会发生。

对于源,我选择 Connection Method = ODBC (native) 连接到源数据库和目标数据库没有问题

我选择将架构信息保留为表前缀,因此导入的表如下所示:database.dbo_table_name

迁移步骤成功(迁移选定对象并生成 SQL 创建语句)

如果我不编辑它们,则 Create 语句看起来像这样 CREATE TABLE IF NOT EXISTS 'restored_database_name'.'dbo_table_name' ...我认为 'restored_database_name' 部分会导致权限错误。如果我直接在 phpMyAdmin 中的 SQL 选项卡中键入它,它会执行此操作。因此,我将其更改为: CREATE TABLE IF NOT EXISTS 'dbo_table_name' ...

同样默认情况下,这是 SQL 的一部分: DROP SCHEMA IF EXISTS 'restored_database_name'; CREATE SCHEMA IF NOT EXISTS 'restored_database_name ... 我认为这也会导致一些权限问题,所以我将这些注释掉了。

在下一步中,我取消选中“在目标 RDBMS 中创建模式”,因为我认为我不想要这个。

问题:接下来的步骤没有什么有趣的,但是在“批量数据传输”中我收到了这个错误:错误:'restored_database_name'。'dbo_database_name':mysql_stmt_prepare:SELECT 命令拒绝用户 'mysql_user_name'@host' 用于表 'dbo_database_table_name。已完成复制 0 行。

我认为该错误与目标数据库的权限有关。我想知道是否可以制作 sql 文件,不仅可以使用 create table 命令,还可以使用 INSERT 命令,这样我就可以使用 sql 并使用命令行或 phpmyadmin 导入它。

我正在使用 Workbench 5.2 CE

任何帮助表示赞赏

4

1 回答 1

1

我看到您已进入 Workbench 的迁移向导。也许您只是遗漏了一些东西,所以我建议您查看此博客,以便验证您的步骤:操作方法:使用 MySQL Workbench 从 Microsoft SQL Server 迁移数据库的指南

不幸的是,您不能使用迁移向导数据复制命令行实用程序来生成包含所有插入的 SQL 文件,但我很确定您可以从 MS SQL Server Management Studio 获得它,并且它应该几乎适用于 MySQL 而无需修改(或稍作修改)。

于 2012-09-30T22:49:30.713 回答