zoukankan      html  css  js  c++  java
  • 使用InstallShield下部署ASP.NET网站和MySQL,目标机为Win7——(二)使用InstallShield部署非安装版MySQL

    接上一篇文章http://www.cnblogs.com/wigis/archive/2012/12/01/2797505.html

    在使用bat批处理可以自动部署MySQL服务端后,我们使用InstallShield来达到相同的目的。原理还是一样的,在用InstallShield安装到客户机的指定位置后,运行bat文件。

    1.  准备以下文件。在上一步应该已经都完成了。

    1)        首先准备好非安装版MySQL(可以删除其内mysql-test子文件夹,此文件夹用于回归测试MySQL,无用而且较大);

    2)        准备好my.ini

    若客户端可能存在MySQL服务器软件,要修改port为其他端口。只要保证每个MySQL服务器使用不同端口,就可以在一个机器上运行多个MySQL实例,很简单。

     

    3)        准备好导入数据的SQL文件

    4)        准备好bat文件。

    解释:

    rem 设置当前路径

    set curDir=%cd%

    rem是相当于//注释

    保存当前路径其实似乎没必要。

     

    rem 若存在服务,则删除

    net stop MySQLCiBASE

    bin\mysqld remove MySQLCiBASE

    不管客户机有没有,首先停掉MySQL服务,并卸载。客户机没有则报错,但不影响继续执行。

     

    echo 安装MySQL服务。。。

    bin\mysqld --install MySQLCiBASE --defaults-file="%curDir%\my.ini"

    安装MySQL服务,--defaults-file参数要带上双引号,否则路径中有空格(比如C:\Program Files)就会报错,dos命令遇到空格就认为命令结束。导致路径错误。

    echo 启动MySQL服务。。。

    net start MySQLCiBASE

    echo MySQL安装完成。。。

     

    cd %curDir%

    echo 初始化MySQL用户。。。

    bin\mysql -uroot <init.sql

    我们加入了init.sql,此SQL文件为了导入用户。你可以在其中修改MySQL的默认帐户以及权限,使MySQL更安全。

     

    echo MySQL开始导入数据。。。

    bin\mysql -uroot<cibase.sql

    导入自己的Sql数据

     

    pause

    为了测试我们后面加入pause。实际运行不需要,否则还要用户点击下安装才能继续。

     

    2.  InstallShield部署软件有些思想。它把需要安装的软件分为若干Feature,每个Feature是软件中相对独立的功能,可由用户选择安装或不安装。对于我们只有一个MySQL的安装,所以只有一个Feature。那每个Feature下肯定应该包含很多文件及文件夹,而InstallShield是Component的概念。一个Component可包含多个文件,并指定独立的安装位置,当然一般是所属Feature下。InstallShield有一些规则来把文件或文件夹分割为不同的Component,比如每个文件夹至少分割成一个Component;遇到exe,dll,hlp等文件也要分割一个Component。我们不用管它,我们使用向导来建立Feature下的Component,IntallShield会自动为我们分割好。

    我们部署MySQL其实只用到很简单的东西。我们新建一个Feature,指定安装路径,使用向导导入文件。然后,比较高级的技术,就是在安装完成后要运行脚本Intall.bat文件。

    1)        首先建立InstallScript MSI Project。为什么建立此类型,据说此类型最好用。

    2)        当然在Project Assistant选项卡中填写一些基本信息,公司名似乎必填,或直接在Intallation DesigneràInstallation Information内填写

    3)        Intallation DesigneràInstallation InformationàGeneral Information的安装目录要自己填写清楚。方便查看检验。

    4)        OrganizationSetup Design内设置Feature,有个DefaulatFeature我们可以删除它,也可以修改它。Organization还有FeaturesComponents视图是他们各自的列表,读者可自行查看。下图中,我们使用向导为mysql导入文件。若不用向导,我们需要手工建立Component,并对应其mysql的父子目录关系,当文件很多时几乎不可行,多亏向导。

    5)        选择第一个Best Practices

    6)        选择安装目录(其实Feature的目录默认为其包含的Components的目录)

    7)        选择Add Folder…。添加mysql非安装版的文件夹

    8)        比较慢,它自动为mysql的文件分为很多components

    9)        重要的一步,要添加运行脚本。在Behavior and LogicàInstallScript中。

    10)        Setup.rul中添加,选择上面2个下拉框,它会自动出现代码模板,我们只需在beginend间,敲入适当的代码即可。

    LanchAppAndWait(INSTALLDIR6”Instal.bat”,””,”WAIT”);函数的意思,可在InstallShield帮助文档中查询。

    11)        点击Run。就OK了。错误的地方自己测试。

     

    12)        卸载脚本

     

    • 其实安装MySQL服务最好不要用MySQL名称,这个名称是MySQL的默认名称,假如客户端安装了MySQL服务的话,一般就是此名称,会冲突。假如需要在客户机部署多个MySQL实例,我们根据自己项目需求,改变Install.bat和UnInstall.bat的MySQL Windows服务名称和my.ini[mysqld]组下的port即可。
    • 关于IntallShield的知识,多读帮助文档。很多知识网上说的五花八门。还是帮助文档靠谱。我使用的是InstallShield2010 Premier Edition 英文版。
    • 我也是刚刚学习InstallShield.

     

    使用InstallShield下部署ASP.NET网站和MySQL,目标机为Win7——(一)使用bat批处理部署非安装版MySQL

    使用InstallShield下部署ASP.NET网站和MySQL,目标机为Win7——(二)使用InstallShield部署非安装版MySQL

    使用InstallShield下部署ASP.NET网站和MySQL,目标机为Win7——(三)整体部署

     

    2012-12-01

  • 相关阅读:
    Git 分布式版本控制的常见命令
    Redis数据库的学习及与python的交互
    Flask项目中数据库迁移的使用
    Flask项目中的蓝图简介及使用方式
    window环境下创建Flask项目需要安装常见模块命令
    Flask数据库常见关系模板代码
    Flask-WTF表单
    SCRF的简介及防护手段
    【题目】求n以内的素数个数
    【题目】英文字符进行频率的统计,直方图输出
  • 原文地址:https://www.cnblogs.com/wigis/p/2797517.html
Copyright © 2011-2022 走看看