如何上传一个.SQL文件到远程主机并且执行它来部署一个SQL数据库

转载 2007年09月12日 23:33:00

【原文地址】 Tip/Trick: How to upload a .SQL file to a Hoster and Execute it to Deploy a SQL Database
【原文发表日期】 Thursday, January 11, 2007 12:20 AM

上个月 (英文),我讨论了新的(免费的)数据库发布向导,它是设计来充分简化在web主机环境中上传和部署 SQL Express 和 SQL Server数据库的。

第一个关于数据库发布的贴子 (英文)里 ,我示范了你如何可以使用数据库发布向导自动生成 .SQL 安装文件,该文件中将包含重建你的数据库数据定义(表,视图,存储过程,触发器,全文索引目录等等)以及以你原来数据库中同样的数据填充新数据库所需的脚本。这提供了一个极其容易的方法来构造在另外一个服务器上完全复制你的数据库的 .SQL 脚本:

在我以前的帖子里,我提到主机供应商经常提供在线SQL管理工具,你可以用它来打开/运行你新生成的 .SQL 文件,或者会提供SQL查询工具允许你拷贝/粘贴 .SQL 文件的内容到一个查询执行窗口来运行这些SQL语句。但不幸的是,并不是所有的主机供应商支持类似的工具。即使在那些支持类似工具的主机供应商那里,你也会遇上一些情形,譬如你生成的 .SQL 文件是如此之大,把它拷贝/粘贴进一个文本框是行不通的(提交一个 200M 字节内容的表单一般都会造成超时)。

这个帖子示范了把 .SQL 文件部署到远程主机环境中去的另外一个方法,这个方法不要求你的主机供应商在后端为你配置和安装任何东西。

不通过使用管理工具把SQL数据库部署到远程SQL服务器的步骤

下面是把一个本地数据库不通过使用任何管理工具就部署到远程主机上去的步骤:

第一步:生成一个包含数据定义和数据的 .SQL文件

远程部署数据库到主机环境的第一步是生成一个 .SQL 文件,内含你数据库的数据定义和数据。按我的 第一个关于数据库发布的博客帖子 (英文)里的步骤,来了解如何为 SQL Express 或 SQL Server数据库生成一个 .SQL 文件。

第二步: 把 .SQL 文件FTP到你的远程主机上去

生成 .SQL 文件之后,使用FTP或者其他文件传输机制将它上传到你的远程主机上去。最好是把这个文件拷贝到一个远程用户不易访问的受保护的场所。一个建议,给这个文件一个随机的名字,然后将它上传到 /app_data 文件夹,因为在默认情形下,该文件里的内容是受保护的。

用FTP来上传这个文件的好处是,它不会强迫你限制 .SQL 文件的大小。有必要的话,该文件的大小可达几百个M字节之多。

第三步: 下载 RunSQL.aspx 辅助页面

访问这个页面,下载其上连接的 RunSQL.aspx 文件。

RunSQL.aspx文件是个ASP.NET页面,是SQL Server产品组编写的,支持2个参数: 1) .SQL 文件的名字, 以及 2) 数据库的连接字符串。运行RunSQL.aspx页面,它会打开指定的 .SQL 文件,在通过连接字符串指定的数据库中迭代执行文件中的每一句SQL语句。这就会把 .SQL 文件中定义的数据库配备到远程的目标数据库中去。

第四步: 编辑 RunSQL.aspx 辅助页面

在本地打开/编辑RunSQL.aspx文件,设置好你的 .SQL 文件名字,以及提供与你的主机供应商给予你的SQL数据库对应的连接字符串:

把 <<YOUR_SCRIPTFILE>> 标记以及相关的连接字符串标记替换成你主机环境中的正确配置值。注意,除非你知道你的 .SQL 文件的完整路径,你大概需要使用ASP.NET中的Server.MapPath(fileName)方法来推算出你应用中与 .SQL 文件的相对路径相对应的绝对路径。譬如:

 

    // Filename of the T-SQL file you want to run
    
string fileName Server.MapPath("personal.SQL");    
    
    
// Connection string to the server you want to execute against
    
string connectionString @"Server=server123;User ID=user123;Password=password123;Initial Catalog=MyDBName123";  
    
    
// Timeout of batches (in seconds)
    
int timeout 600;

 

第五步: 把 RunSQL.aspx 辅助页面上传到你的远程主机

完成更改文件名和连接字符串值之后,把RunSQL.aspx文件上传到你的远程主机上去(譬如,使用FTP)。

为安全的原因,我建议你在上传时给该文件一个随机的文件名,这样,别人就不容易找到这个文件并执行它了。

第六步: 用浏览器访问 RunSQL.aspx 辅助页面

上传后,通过浏览器访问远程的RunSQL.aspx网页,这会导致你远程服务器上的网页分析 .SQL 文件,执行其中的所有SQL语句。 因为 .SQL 文件包含了重建数据库所需的数据库数据定义和数据填充的所有语句,网页执行完毕后,你就将一个一模一样的数据库部署到你的远程主机上了:

第七步: 删除 RunSQL.aspx 和 .SQL 文件

运行完你的 .SQL 脚本之后,把RunSQL.aspx网页和 .SQL 文件同时从你的远程主机服务器上删除。

为安全的原因,你想要任何其他人能够远程访问RunSQL.aspx网页,因为它也许会重建你的数据库,导致数据丢失。

第八步: 更新你应用的Web.Config文件来指向主机环境中的数据库

剩下的最后一步是更新你的web.config文件的 <connectionStrings> 部分指向你的远程主机数据库的连接字符串值。之后,你的应用就应该在远程主机上正常工作了。

希望本文对你有所帮助,

Scott

附注:要阅读我写的其他的技巧,诀窍和Recipes帖子的话,请访问这个网页

 

MySQL执行外部sql脚本文件的命令

sql脚本是包含一到多个sql命令的sql语句,我们可以将这些sql脚本放在一个文本文件中(我们称之为“sql脚本文件”),然后通过相关的命令执行这个sql脚本文件。基本步骤如下: 1、创建包含sq...
  • vebasan
  • vebasan
  • 2012年05月31日 15:24
  • 195252

Linux服务器中直接执行sql文件

1、连接数据库mysql -uroot -p123456 -h127.0.0.1 -h,指定ip地址,默认为localhost -u,指定用户名 -p,指定密码 2、新建数据库create datab...
  • askycat
  • askycat
  • 2017年04月29日 23:14
  • 1437

将本地数据库里的表上传至服务器

一般来说在本地用tomcat搭建的环境做测试会在本地的数据库里留下一些数据,如果在服务器上不需要这些数据,那直接在服务器上新建数据库,修改代码中的路径即可。但是如果这些数据库需要保存,那么步骤如下: ...
  • fengsigaoju
  • fengsigaoju
  • 2016年09月20日 18:27
  • 1688

[.Net码农]将文件上传到数据库 和 从数据库下载文件到本地

将文件上传到数据库 和 从数据库下载文件到本地 http://www.cnblogs.com/wang7/archive/2012/05/22/2513012.html  ...
  • CrackLibby
  • CrackLibby
  • 2015年06月29日 15:04
  • 2466

跨服务器上复制文件,以及执行sql脚本

//登陆一台服务器后,如何切换到其他ip服务器上 ssh -l root 10.26.0.65 //如何把一台服务器上文件,考到另外一台服务器上 scp  -r  /root/location....
  • u010073055
  • u010073055
  • 2016年07月16日 09:25
  • 486

把SQL数据库部署到远程主机环境

场景:你开发完了一个得意的ASP.NET应用,所有的东西都测试过了而且在你本机上一切工作都正常,充分利用了ASP.NET 2.0中的成员,角色和用户信息等新功能,万事俱备,准备将它发布到一个远程主机环...
  • msonchina
  • msonchina
  • 2007年08月06日 13:45
  • 731

java实现文件上传到服务器

  • 2015年03月30日 21:18
  • 10.64MB
  • 下载

SQL从本地怎样上传数据库到服务器

      许多网站制作者在本地把网站做好之后与调试好以后就要传到虚拟主机上去了,但MSSQL数据库有点不好传,用网上常用的先备份再还原的方法不行,提示没有操作权限出错时,不防试试这个方法.  其实主...
  • skyfreedoms
  • skyfreedoms
  • 2010年11月28日 12:17
  • 9091

远程访问 Sql Server Express 的方法

Sql Server Express 默认不支持远程访问,仅可本机访问。若想要远程访问,需要修改默认配置,以Sql server Express 2014 为例,步骤如下: 1、启用TCP/IP 和...
  • dhx20022889
  • dhx20022889
  • 2015年01月27日 13:11
  • 10697

数据库服务器的安装与配置

理论基础 数据库服务器是当今应用最为广泛的一种服务器类型,许多企业在信息化建设过程中都要购置数据库服务器。数据库服务器主要用于存储、查询、检索企业内部的信息,因此需要搭配专用的数据库系统,对服务器的...
  • barenk
  • barenk
  • 2017年04月18日 13:02
  • 2171
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何上传一个.SQL文件到远程主机并且执行它来部署一个SQL数据库
举报原因:
原因补充:

(最多只允许输入30个字)