• 超级玛丽   2014/11/9 11:14:00
  • 如何在Windows下运行多个MySQL服务器
  • 关键字: mysql 安装mysql
  • 在Windows中,可以从命令行手动启动来运行多个服务器,每个服务器使用合适的操作参数。在基于Windows NT的系统中,安装几个服务器时,你还有将多个服务器安装为Windows服务并运行的选项。

    在命令行中启动多个Windows服务器


    为了从命令行手动启动多个服务器,可以在命令行中或在选项文件中指定适当的选项。把选项放在选项文件中比较方便,但是需要确保每个服务器可以获得自己的选项。为了实现,为每个创建一个选项文件,并且运行服务时通过--defaults-file选项告诉服务器选项文件名。


    假设你想要在端口3307使用数据目录C:\mydata1运行mysqld,并且想在端口3308使用数据目录C:\mydata1运行mysqld-max。(要想这样做,启动服务器之前要确保,每个数据目录存在并且有自己的mysql数据库拷贝,它包含 授权表)。

    然后创建两个选项文件。例如,创建一个文件名为C:\my-opts1.cnf的配置文件,它看起来象这个样子:

    [mysqld]
    datadir = C:/mydata1
    port = 3307
    创建第二个文件名为C:\my-opts1.cnf的配置文件,它看起来象这个样子:

    mysqld]
    datadir = C:/mydata2
    port = 3308
    然后,用它们自己的选项文件启动每个服务器:

    C:\> C:\mysql\bin\mysqld --defaults-file=C:\my-opts1.cnf
    C:\> C:\mysql\bin\mysqld-max --defaults-file=C:\my-opts2.cnf
    在NT中,每个服务器在前台启动(服务器退出前,不会显示新的提示符);需要在两个控制台窗口中执行这两个命令。

    要想关闭服务器,必须连接到相应的端口号:

    C:\> C:\mysql\bin\mysqladmin --port=3307 shutdown

    C:\> C:\mysql\bin\mysqladmin --port=3308 shutdown

    如刚才所讨论的,服务器配置允许客户端通过TCP/IP来连接。如果你的Windows版本支持命名管道并且你想允许命名管道连接,使用mysqld-nt或mysqld-max-nt服务器并指定启用命名管道并且指定管道名的选项。支持命名管道连接的每个服务器必须使用一个唯一的管道名。例如,C:\my-opts1.cnf文件可能象这样来书写:

    [mysqld]
    datadir = C:/mydata1
    port = 3307
    enable-named-pipe
    socket = mypipe1

    然后,这样启动服务器:

    C:\> C:\mysql\bin\mysqld-nt --defaults-file=C:\my-opts1.cnf
    同样修改第2个服务器使用的C:\my-opts2.cnf文件。

     做为服务启动多个Windows服务器


    在基于NT的系统中,MySQL服务器可以以Windows服务的方式来运行。你还可以以服务的方式安装多个MySQL服务器。此时,除了所有参数对每个服务器必须是唯一的,你还必须确保每个服务器使用不同的服务名。

    在下面的说明中,假设你想要运行mysqld-nt服务器的两个不同的版本,它们分别安装在C:\mysql-4.1.8和C:\mysql-5.1.2-alpha目录中。(可能存在这种情况,如果你正在运行版本4.1.8作为你的产品服务器,还想使用5.1.2-alpha版本来进行测试)。

    当用--install或--install-manual选项安装一个MySQL服务时,应遵从以下原则:

    1.如果你没有指定服务名,服务器使用默认的MySQL服务名,从标准选项文件的[mysqld]组中读取选项。

    2.如果你在--install选项后指定了服务名,服务器忽略[mysqld]选项组,从具有相同名的组中读取选项作为服务名。服务器从标准选项文件中读取选项。

    3.如果你在服务名后面指定一个--defaults-file选项,服务器忽略标准选项文件,只从命名的文件的[mysqld]组读取选项。

    注释:MySQL 4.0.17之前,只有使用默认服务名(MySQL)安装的一个服务器或使用服务名mysqld显式安装的一个服务器从标准选项文件读[mysqld]组。到4.0.17时,如果服务器读标准选项文件,则它们均读[mysqld]组,即使它们安装时使用了另一个服务名。这样允许你为选项使用[mysqld]组,用于所有MySQL服务器,并将根据每个服务器命名的选项组用于该服务器,即使用那个服务名安装的服务器。

    根据前面叙述,你可以通过几个方法来设置多个服务器。下面的说明描述了一些示例。在尝试之前,应确保你首先关闭并且卸载了所有已有的MySQL服务器。

    方法1:在一个标准选项文件中指定所有服务器选项。要想这样做,为每个服务器使用不同的服务名。假设你想使用服务名mysqld1运行4.1.8版的mysqld-nt并使用服务名mysqld2运行5.1.2-alpha版的mysqld-nt。在这种情况下,你可以为4.1.8使用[mysqld1]组,为5.1.2-alpha使用[mysqld2]组。例如,你可以象这样建立 C:\my.cnf文件:

    1. # options for mysqld1 service  
    2. [mysqld1]  
    3. basedir = C:/mysql-4.1.8  
    4. port = 3307  
    5. enable-named-pipe  
    6. socket = mypipe1                  
    7. # options for mysqld2 service  
    8. [mysqld2]  
    9. basedir = C:/mysql-5.1.2-alpha  
    10. port = 3308  
    11. enable-named-pipe  
    12. socket = mypipe2  


    如下面所示安装服务器,使用服务器的全路径名来确保Windows为每个服务注册正确的可执行程序:

    C:\> C:\mysql-4.1.8\bin\mysqld-nt --install mysqld1
    C:\> C:\mysql-5.1.2-alpha\bin\mysqld-nt --install mysqld2

    为了启动服务器,使用服务管理器,或用带有适当的服务名的NET START:

    C:\> NET START mysqld1

    C:\> NET START mysqld2

    要想停止服务,使用服务管理器,或用带有适当的服务名的NET STOP:

    C:\> NET STOP mysqld1
    C:\> NET STOP mysqld2

    ·         方法2:为每个服务器用不同的文件指定选项,当你安装服务时使用--defaults-file告诉每个服务器使用什么文件。此时,每个文件应用一个[mysqld]组列出选项。

    使用这种方法为4.1.8版本的mysqld-nt指定选项,应象这样创建一个C:\my-opts1.cnf文件:

    [mysqld]
    basedir = C:/mysql-4.1.8
    port = 3307
    enable-named-pipe
    socket = mypipe1

    对于5.1.2-alpha版的mysqld-nt,象这样创建一个C:\my-opts2.cnf文件:

    [mysqld]
    basedir = C:/mysql-5.1.2-alpha port = 3308
    enable-named-pipe
    socket = mypipe2

    安装服务如下(在一个单一行中输入每个命令):

    C:\> C:\mysql-4.1.8\bin\mysqld-nt -- installmysqld1
               --defaults-file=C:\my-opts1.cnf
    C:\> C:\mysql-5.1.2-alpha\bin\mysqld-nt -- installmysqld2
               --defaults-file=C:\my-opts2.cnf

    当你作为服务安装一个MySQL服务器时,要想使用--defaults-file选项,你必须在此选项之前加服务名。

    安装服务后,按照与前面的示例相同的方法启动和停止。

    要想卸载多个服务,对每个服务使用mysqld --remove,在--remove选项后指定服务名。如果服务名是 默认的(MySQL),你可以不指定。


大家的回答
  • 还没有人回答这个问题哦,亲,快来帮帮TA吧
  •   我来回答
  • 注册用户登录后才能发表评论,请 登录注册
  • 请您注意

    ·自觉遵守:爱国、守法、自律、真实、文明的原则

    ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规

    ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品

    ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    ·您在编程中国社区新闻评论发表的作品,本网站有权在网站内保留、转载、引用或者删除

    ·参与本评论即表明您已经阅读并接受上述条款