将数据从 mysql 迁移到 microsoft sql server 的最直接选项是安装 myodbc 支持并创建一个 dts 程序包,用它们将数据库从 mysql 导入并创建到 microsoft sql server。 以下是设置 microsoft sql server 以迁移 mysql 数据库的逐步操作。
安装 myodbc 支持,它可在以下网址下载 http://www.mysql.com/
安装过程中,系统会提供以下对话框:
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。 填写 odbc 安装设置,使用如下信息: windows dsn 名称:
test
说明:
这是个测试数据库
mysql 数据库:
test
服务器:
seawolf.microsoft.com
用户:
cgunn
密码:
my_password
端口:
3306
使用上述设置后,windows dsn 名称在建立连接的计算机上必须唯一,服务器设置会完全验证域名(确保 dns 或您提供的名称具备名称解析)或 ip 地址的有效性。
然后,执行 dts 向导程序。从 microsoft sql server 程序组中选择“import and export data”,您会看到以下对话框。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。 单击 next 到下一步。
现在提供必要的数据源选择信息,此信息应该是,odbc 数据源为 mysql,test 为 system dsn,然后提供安全证书、用户名和密码(见下一个对话框),然后单击 next。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
填写目标连接的详细信息,如下面的对话框所示,然后单击 next。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
specify table copy or query 对话框让您在此选择数据源中的数据库对象选项,这里的数据源是 mysql。在来源数据库中选择 copy table(s) 和 view(s)。另外需要说明的重要一点是,mysql 不支持视图,所以选择此选项后,它将只复制数据表对象,单击 next 继续。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
下一个是 select source tables and view 对话框,您可以在这个对话框中选择来源数据表和目标数据表。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
单击椭圆按钮进行数据转换,如下面的 column mappings and transformations 对话框所示。
用 mysqldump 生成脚本后,可以将脚本传输到 sql server - 使用类似文件传输协议 (ftp) 的应用程序将脚本从 mysql 主机传输到 sql server 2000 计算机。
通过 sql 查询分析器使用提取的脚本
生成的脚本现在可以用于创建数据库对象和插入数据。从 mysql 脚本构建数据库架构的比较好的方法是使用 sql server 2000 中的 sql 查询分析器。 您可以直接从开始菜单运行 sql 查询分析器,也可以从 sql server 企业管理器运行。也可以通过执行 isqlw 实用程序从命令行运行 sql 查询分析器。 为了让脚本正确执行,还需要一些额外的工作,这需要对 sql 语言进行某些更改。同样,记住逐步运行 sql 脚本,并将数据类型更改为 sql server 兼容类型。下图显示了从 mysqldump 导入的一个脚本,需要说明的重要一点是,转储的是一个 ascii 脚本文件。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。 microsoft sql server 2000 sql 查询分析器允许您:
创建查询和其它 sql 脚本并对 sql server 数据库执行这些脚本
用预定义脚本迅速创建常用数据库对象
迅速复制现有的数据库对象
无需知道参数就可以执行存储过程
调试存储过程
调试查询性能问题
定位数据库中的对象,或者查看并使用对象
在数据表中迅速插入、更新或删除行
为常用查询创建键盘快捷方式
将常用命令添加到工具菜单
扩展应用程序
将 mysql 应用程序的数据管理部分移到 microsoft sql server 后,您可以让 sql server 保护数据并维护所有引用完整性和用 transact-sql 编写的业务规则。 诸如 ado、ole db 和 odbc 这样的数据库应用程序编程接口 (api) 通过多种编程语言显示数据库数据。您可以用 microsoft visual c++、microsoft visual basic 和 microsoft visual j++ 这样的开发系统访问这些 api。 此外,如果应用不断扩展,您不需要更改应用程序就可以将 microsoft sql server 移到更大的计算机;sql server 能自动识别硬件配置,并因此自我调节,以获得最佳的内存、i/o 和处理器利用率。
从 internet 访问数据
sql server 提供了将应用程序扩展到基于 web 的接口的能力。这个能力使您可以随时随地访问应用程序。通过使用 iis web 服务器并在 active server pages (asp) 中使用 activex 数据对象 (ado),sql server 可以与 microsoft internet information services (iis) 集成在一起,从而提供了一个访问 sql server 中所保存数据的快速、高效的用户接口。 详细信息请参见 http://www.msdn.microsoft.com
安全性
sql server 2000 中的数据库安全性既稳定又便于维护。不论是 sql server 还是 mysql,重要的是要在两个层面考虑安全性。1) 能访问服务器,2) 能访问单个数据库。 mysql 有一个独特的加强服务器访问安全性的方法 - 限制对数据源的访问。如果是客户端,则使用 ip 地址或完全合格的域名、通配符(如‘%’)。sql server 需要用户帐户,不论是由操作系统管理还是保存在 sql server 的 master 数据库中。 sql server 利用角色提供了组访问,这可以通过为用户组建立通用访问来方便数据库的管理。 以下步骤概要介绍了 microsoft sql server 如何通过企业管理器工具提供对服务器和数据库的访问。
打开企业管理器,找到“security folder”,选择 logins 图标,用鼠标右键单击并选择 new login。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。 出现 sql server login properties 对话框后,输入登录名称,这与 mysql 中的用户名类似。选择 sql server 身份验证以提供一个对该 sql server 有效的安全级别。
指定默认数据库和语言。
在对话框顶部选择 server roles 选项卡,以提供对服务器权限的访问信息,这里突出显示的角色是 sysadmins(系统管理员),它相当于 mysql 中的根访问。
下一个选项卡是 database access。这个属性页不但提供对单个数据库的访问,而且可以访问实际位于 sql server 上的索引数据库。选择数据库后,再设置数据库角色。默认情况下,所有用户都可访问公共角色。这个角色仍然需要分配权限。此图中还选择了另一个角色 db_owner,它只允许用户无限制访问数据库,但不能无限制访问整个 sql server 或者其它数据库,除非单独选择了其它数据库并分配了 db_owner 权限。
单击 ok 后,会出现输入密码的提示。
企业管理器中出现新的登录。您还会注意到此图中有一个名为“sa”的登录帐户,这个系统管理员帐户需要有密码,在安装 sql server 的过程中,会有一个为此登录保留空密码的选项,您应该指定这个密码。 如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。 有关创建 microsoft sql server 登录的详细信息,请参阅 sql server 联机图书的“管理安全性”主题。
数据库权限
sql sever 2000 也通过限制对数据库定义语言 (ddl) 以及数据操纵语言 (dml) 声明权限的访问提供了数据库安全保护能力,设置步骤与创建登录类似。使用企业管理器工具可以方便地设置 sql server 数据库权限。
要想转储 mysql 数据,请使用以下命令: #> mysqldump -u user name -ppassword -opt databasename < filename.sql 若想用 mysqldump 输出文本文件重新创建数据库,请使用以下命令: #> mysql -u user name -ppassword databasename < filename.sql
优化命令行选项
使用 -opt 可以自动在 mysqldump 命令行中启用选项。有关转储 mysql 数据的更多信息,请参见“转储 mysql 数据”一节。下表是 --opt 命令: 命令 说明 --add-drop-table