PHP网站制作之将MySQL迁徙到Microsoft SQL Server 20...
也得学会了PHP。然后再学,见异思迁是最不可取的,狗熊掰玉米就是这个道理,如果经常中途放弃,只能是一无所获,还浪费了N多的时间和经历,得不偿失,最重要的是,你会被别人瞧不起。mysql|server 用于数据迁徙的 MySQL 东西MySQL 供应了几个客户端东西和适用法式,最经常使用的有:
[*]mysql - 一个交互式客户法式,可以对数据库宣布查询并检查了局
[*]mysqldump - 此东西可以提取 MySQL 数据库中的架构和数据,并放到一个文件中
[*]mysqlimport - 此东西可以读取文件中的架构和数据,并放到一个 MySQL 数据库中
[*]mysqladmin - 此东西可以履行办理义务,好比创立数据库和删除数据库
[*]myODBC - 一个 32 位的开放式数据库毗连软件,可供应 ODBC 级别 0(有级别 1 和级别 2 的功效)驱动法式,用于将 ODBC 辨认的使用法式毗连到 MySQL
SQL Server 的迁徙东西
SQL Server 有一组丰厚的东西和适用法式,可以简化从 MySQL 的迁徙。SQL Server 2000 数据转换办事 (DTS) 是一组图形化东西和可编程对象,用于从各类来历提取、转换和兼并数据到一个或多个方针。 数据转换办事的功效
Microsoft SQL Server 2000 中的数据转换办事供应了从分歧数据源迁徙数据的办法。DTS 可以用导游法式驱动,也能够用 DTS 法式包设计器创立。DTS 导游可以疾速完成数据直接复制。法式包设计器答应开辟人员用多种编程言语编写自界说转换剧本。DTS 东西答应您:
[*]将数据从 MySQL 迁徙到 SQL Server 2000
[*]在迁徙前显示数据
[*]迁徙数据表、数据类型,例如文本和日期
[*]用 MySQL 数据表迁徙 MySQL 数据库
[*]生成并检查迁徙呈报
[*]自界说数据表和默许的数据类型映照划定规矩
[*]处理抵触,好比 SQL Server 保存字抵触
[*]删除偏重定名 SQL Server 架构模子中的对象
[*]迁徙单个数据表数据
数据转换办事术语
以下是用于描写 DTS 的术语:
DTS 法式包是一个毗连、DTS 义务、DTS 转换和任务流束缚的有组织的纠合,可以在 DTS 设计器顶用图形化体例或用编程体例汇编在一同。
DTS 义务是一个分立的功效纠合,在法式包中单步履行。每一个义务都界说一个数据挪动和数据转换过程当中要履行的任务项目,或一个要履行的功课。
DTS 转换是数据抵达目标地之前要对它使用的一个或多个功效或操作。
DTS 法式包任务流答应数据转换办事 (DTS) 慢慢运转,由优先束缚对 DTS 法式包中的任务项目停止排序。您可以在 DTS 设计器顶用图形体例设计 DTS 数据包任务流,也可用编程体例设计。
元数据为 DTS 供应的功效可以将法式包元数据和数据因循信息保留到元数据办事,并链接那些信息类型。您可以存储法式包中援用的数据库的种别元数据,和统计与数据集市或数据仓库中特定命据行有关的汗青信息。 直接迁徙
将数据从 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 对话框所示。
假如您的阅读器不撑持内嵌框,请单击此处在独自的页中检查。
在这个对话框中,来历数据类型已与方针数据类型婚配,空数据字段已被选中。完成后,单击 OK。
然后会呈现 Save, Schedule, and Replicate Package 对话框,答应您布置迁徙工夫,避开利用岑岭期,同时答应您将 DTS 法式包用分歧格局保留到分歧中央。
假如您的阅读器不撑持内嵌框,请单击此处在独自的页中检查。
[*]DTS 保留法式包对话框对 DTS 法式包供应了两类暗码。第一个暗码是一切者暗码,答应您回护法式包内的一切用户/暗码信息,而用户暗码用于履行法式包和避免对 DTS 法式包的任何未受权履行,以下所示,单击 Next 持续。
假如您的阅读器不撑持内嵌框,请单击此处在独自的页中检查。
[*]最初,Completing the DTS Import/Export Wizard 对话框会显示在 DTS 导游法式中所选选项的概要。
假如您的阅读器不撑持内嵌框,请单击此处在独自的页中检查。
单击 Finish 入手下手数据迁徙进程。
[*]Executing Package 对话框显示每项义务履行时的形态。绿色对钩暗示义务胜利完成。假如义务不克不及完成,有毛病终止了历程,则会呈现显示此毛病的毛病对话框。
假如您的阅读器不撑持内嵌框,请单击此处在独自的页中检查。
如今您可以胜利地将数据从 MySQL 迁徙到 SQL Server 2000。 利用数据加载
您可使用与 MySQL Server 一同供应的客户法式 mysqldump 将 MySQL 数据库的架构和数据输入到各类格局的 .sql/.txt 文件。DTS 可使用 mysqldump 输入文件为大型数据表供应脱机数据加载才能。以下主题注释了数据加载进程:
[*]生成 mysqldump 数据提取剧本
[*]设置剧本传输
[*]利用提取的剧本
生成 mysqldump 数据提取剧本
MySQL 有一个适用法式可以转储数据库和数据库纠合停止备份,或将数据传输到 SQL Server。
mysqldump 适用法式供应了创立数据库 SQL 剧本的才能。
mysqldump 最冗长的语法是:
Shell> mysqldump database
本白皮书前面有 mysqldump 的可用选项信息,也能够检查 MySql 参考手册取得此信息。
利用 mysqldump 后,您会取得一个数据库的 SQL 剧本。 设置剧本传输
用 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 权限。
http://www.163design.net/p/UploadFiles_9746/200607/20067592117471.GIF
[*]单击 OK 后,会呈现输出暗码的提醒。
企业办理器中呈现新的登录。您还会注重到此图中有一个名为“sa”的登录帐户,这个体系办理员帐户需求有暗码,在装置 SQL Server 的过程当中,会有一个为此登录保存空暗码的选项,您应当指定这个暗码。
假如您的阅读器不撑持内嵌框,请单击此处在独自的页中检查。
有关创立 Microsoft SQL Server 登录的具体信息,请参阅 SQL Server 联机图书的“办理平安性”主题。 数据库权限
SQL Sever 2000 也经由过程限制对数据库界说言语 (DDL) 和数据把持言语 (DML) 声明权限的会见供应了数据库平安回护才能,设置步调与创立登录相似。利用企业办理器东西可以便利地设置 SQL Server 数据库权限。 数据把持言语权限
[*]翻开企业办理器,找到数据库文件夹,然后选摘要设置权限的数据库。选择 users 图标,然后选择数据库用户,用右键单击并选择 Properties。
假如您的阅读器不撑持内嵌框,请单击此处在独自的页中检查。
[*]单击 permissions 按钮。
[*]权限窗口供应了对一切数据库对象(好比数据表、视图和存储进程)设置 DML 声明的才能。选择权限后,请单击 OK。
假如您的阅读器不撑持内嵌框,请单击此处在独自的页中检查。
数据界说言语权限
[*]要想为数据库供应 DDL 声明会见,需求选择该数据库的属性。选择数据库图标并用右键单击。选择 Properties。
假如您的阅读器不撑持内嵌框,请单击此处在独自的页中检查。
[*]然后选择数据库属性窗口中的 permissions 选项卡。
假如您的阅读器不撑持内嵌框,请单击此处在独自的页中检查。
[*]选择响应权限后,单击 OK。
毛病扫除
本章供应以下方面的毛病扫除计划和有关信息:
[*]界说用户帐户
[*]转储 MySQL 数据
[*]优化号令行选项
界说用户帐户
当您往体系中装置 MySQL 办事器时,会默许设置一个根用户,它是具有全体 DBA 特权的用户帐户。您应当用根用户经由过程 ODBC 登录到 MySQL 办事器。(注重:默许情形下,根用户只能登录对当地主机的会见,请记住答应根用户从运转 DTS 导游的盘算机 IP 或 DNS 地址登录。) 转储 MySQL 数据
上面的表供应了转储 MySQL 数据和用 mysqldump 文本文件从头生成数据库时利用的语法注释。 号令
申明
mysqldump
此东西可以将 MySQL 数据库中的架构和数据提取到一个文件中。
mysql
加载 MySQL 以便您利用号令。
-u user name
MySQL 根用户名。此用户应当有全体的 DBA 特权。
-ppassword
您的 MySQL 数据库办事器的根用户暗码。
--opt
优化数据表转储速度并写一个包管重载速度最快的转储文件。此选项可以启用 -add-drop-table、--add-locks、--all、--extended-insert, --quick 和 -lock-tables 选项。由 -opt 启用的选项列表请拜见“MySQL 优化选项”局部。
databasename
您要将其内容转储到一个文本输入文件的数据库的称号。
<
用于重定向 UNIX 和 Windows NT/2000 中的输出的符号。
filename.sql
含有 MySQL 的文件名。
要想转储 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
在每一个 CREATE TABLE 语句之前添加 DROP TABLE If EXISTS 语句。
--all
包含一切 MySQL 独有的创立选项。
--extended-insert
写多个行拔出语句
--quick
不缓存查询,直接转储到尺度输入。假如利用此选项时您暂停了 mysqldump,您能够会搅扰其它客户机,由于它会招致办事器守候。
--lock-tables
将一切表锁定为只读
MySQL 毛病动静
本节供应了在 MySQL 数据库迁徙到 SQL Server 2000 的过程当中能够会呈现的毛病动静。 毛病动静
用 DTS 迁徙数据时,能够会呈现以下毛病动静: 毛病动静
处理计划
没法毗连 MSQL Server <name>。
您要毗连的体系/或端口上是不是正在运转 MySQL 办事器?
激发该毛病的缘由多是:
・源端口默许设置为 3306。这个端标语指 MySQL 通信要利用的端口。假如 MySQL 上对这个端口的界说分歧,请在 MySQL ODBC 设置中更改此端口设置。
・确保用户具有会见 MySQL 办事器的响应 DBA 权限。
・确保用户名无效。
数据库中已有一个名为“tablename”的对象
这个数据表是在履行 DTS 法式包的过程当中创立的,请确保在法式包履行过程当中已删除或从头创立了该数据表。
结论
本白皮书供应了胜利将数据库架构和数据从 MySQL 迁徙到 Microsoft SQL Server 2000 所需的根基信息和后台常识。对使用法式来讲,SQL Server 2000 更牢靠、伸缩性更强、功效更多。 可以在书上很方便地做标记,及时记下自己的心得体会。 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。 如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了, 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 Ps:以上纯属原创,如有雷同,纯属巧合
页:
[1]