9159金沙游艺场-奥门金沙游艺场-[欢迎您]

9159金沙游艺场为您呈现最新的面貌!,目前注册送体验金,欢迎您将成为影视娱乐行业新的风向标,是亚洲的优质娱乐先锋。

如何在Windows中运行多个MySQL实例详解

日期:2020-04-26编辑作者:前端

前言

在Windows中可以从命令行为每个实例使用合适的操作参数来手动启动多个MySQL实例或者通过以Windows服务方式来安装多个服务器来运行。

1.在windows中MySQL的base目录中创建两个新实例的数据目录data3307,data3308

2.为每个新实例设置配置文件来指定相关选项

my3307.cnf文件内容如下:

[mysql]# 设置mysql客户端默认字符集default-character-set=utf8mb4[mysqld]# 设置3307端口port = 3307# 设置mysql的安装目录basedir=D:mysql-5.7.25-win32# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错datadir=D:mysql-5.7.25-win32data3307# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:mysql-5.7.25-win32mysql3307.errpid-file=D:mysql-5.7.25-win32mysqld3307.pidsocket =D:mysql-5.7.25-win32mysql3307.sock

my3308.cnf文件内容如下:

[mysql]# 设置mysql客户端默认字符集default-character-set=utf8mb4[mysqld]# 设置3308端口port = 3308# 设置mysql的安装目录basedir=D:mysql-5.7.25-win32# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错datadir=D:mysql-5.7.25-win32data3308# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:mysql-5.7.25-win32mysql3308.errpid-file=D:mysql-5.7.25-win32mysqld3308.pidsocket =D:mysql-5.7.25-win32mysql3308.sock

3.初始化新数据库

D:mysql-5.7.25-win32binmysqld --defaults-file=D:mysql-5.7.25-win32my3307.cnf --initialize --basedir=D:mysql-5.7.25-win32 --datadir=D:mysql-5.7.25-win32data3307D:mysql-5.7.25-win32binmysqld --defaults-file=D:mysql-5.7.25-win32my3308.cnf --initialize --basedir=D:mysql-5.7.25-win32 --datadir=D:mysql-5.7.25-win32data3308

4.启动数据库

D:mysql-5.7.25-win32binmysqld --defaults-file=D:mysql-5.7.25-win32my3307.cnfD:mysql-5.7.25-win32binmysqld --defaults-file=D:mysql-5.7.25-win32my3308.cnf

每个服务器都在前台启动(在服务器稍后退出之前不会出现新的提示),所以您需要在单独的控制台窗口中发出这两个命令。

5.登录数据库修改密码

C:UsersAdministratormysql --port=3307 --host=127.0.0.1 --user=root --password=U0UKinrdWHbmysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 6Server version: 5.7.25Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.mysql ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';Query OK, 0 rows affected (0.00 sec)mysql exitByeC:UsersAdministratormysql --port=3307 --host=127.0.0.1 --user=root --password=123456mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 7Server version: 5.7.25 Source distributionCopyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.mysql exitC:UsersAdministratormysql --port=3308 --host=127.0.0.1 --user=rootEnter password: ************Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 8Server version: 5.7.25Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.mysql ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';Query OK, 0 rows affected (0.00 sec)mysql exitByeC:UsersAdministratormysql --port=3308 --host=127.0.0.1 --user=root --password=123456mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 9Server version: 5.7.25 Source distributionCopyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.mysql

6.为了关闭数据库服务器,使用合适的端口号连接到每个实例执行下面的命令:

C:UsersAdministratormysqladmin --port=3307 --host=127.0.0.1 --user=root --password=123456 shutdownmysqladmin: [Warning] Using a password on the command line interface can be insecure.C:UsersAdministratormysqladmin --port=3308 --host=127.0.0.1 --user=root --password=123456 shutdownmysqladmin: [Warning] Using a password on the command line interface can be insecure.

上面的配置允许客户端通过TCP/IP来进行连接。如果你的Windows版本支持命名管道并且你也想使用命名管道来连接,指定启用命名管道选项和指定它的名称。每个实例支持命名管道连接必须使用一个唯一的管道名。例如:

my3307.cnf文件内容如下:

[mysql]# 设置mysql客户端默认字符集default-character-set=utf8mb4[mysqld]# 设置3307端口port = 3307# 设置mysql的安装目录basedir=D:mysql-5.7.25-win32# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错datadir=D:mysql-5.7.25-win32data3307# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:mysql-5.7.25-win32mysql3307.errpid-file=D:mysql-5.7.25-win32mysqld3307.pidenable-named-pipesocket =D:mysql-5.7.25-win32mysql3307.sock

my3308.cnf文件内容如下:

[mysql]# 设置mysql客户端默认字符集default-character-set=utf8mb4[mysqld]# 设置3308端口port = 3308# 设置mysql的安装目录basedir=D:mysql-5.7.25-win32# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错datadir=D:mysql-5.7.25-win32data3308# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:mysql-5.7.25-win32mysql3308.errpid-file=D:mysql-5.7.25-win32mysqld3308.pidsocket =D:mysql-5.7.25-win32mysql3308.sock

然后启动MySQL实例。想让客户端通过共享内存连接的过程与上面的过程类似。对每个连接使用–shared-memory选项并使用–shared-memory-base-name选项来为每个实例指定唯一的共享内存名字。

在Windows中作为Windows服务来启动多个MySQL实例

在Windows中,一个MySQL服务器可以以Windows服务来运行。为了设置多个MySQL服务,你必须确保每个实例使用不同的服务名另外其它参数每个实例必须都有唯一值。为了将MySQL服务器注册成为Windows服务,使用mysqld –install或mysqld –install-manual选项。

基于上面的信息,有几种方式来设置多个Windows服务。在注册Windows服务之前需要关闭并删除任何已经存在的Windows服务。

9159金沙游艺场,方法1

在一个标准的选项文件中指定所有服务选项。这样就需要为每个MySQL服务指定不同的服务名。假设端口为3307的MySQL实例的服务名为mysqld1,端口为3308的MySQL实例的服务名为mysqld2。那么D:mysql-5.7.25-win32my.ini设置如下:

[mysqld1]# 设置3307端口port = 3307# 设置mysql的安装目录basedir=D:mysql-5.7.25-win32# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错datadir=D:mysql-5.7.25-win32data3307# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:mysql-5.7.25-win32mysql3307.errpid-file=D:mysql-5.7.25-win32mysqld3307.pidsocket =D:mysql-5.7.25-win32mysql3307.sock[mysqld2]# 设置3308端口port = 3308# 设置mysql的安装目录basedir=D:mysql-5.7.25-win32# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错datadir=D:mysql-5.7.25-win32data3308# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:mysql-5.7.25-win32mysql3308.errpid-file=D:mysql-5.7.25-win32mysqld3308.pidsocket =D:mysql-5.7.25-win32mysql3308.sock

注册服务,使用完整服务路径名来确保Windows为每个服务注册正确的可执行程序:

D:mysql-5.7.25-win32binmysqld --install mysqld1Service successfully installed.D:mysql-5.7.25-win32binmysqld --install mysqld2Service successfully installed.

为了启动MySQL服务,使用服务管理器或者使用net start servicename:

C:UsersAdministratornet start mysqld1

mysqld1 服务正在启动 .

mysqld1 服务已经启动成功。

C:UsersAdministratornet start mysqld2

mysqld2 服务正在启动 .

mysqld2 服务已经启动成功。

为了停止MySQL服务,使用服务管理器或者使用net stop servicename:

C:UsersAdministratornet stop mysqld1

mysqld1 服务正在停止.

mysqld1 服务已成功停止。

C:UsersAdministratornet stop mysqld2

mysqld2 服务正在停止.

mysqld2 服务已成功停止。

删除服务

D:mysql-5.7.25-win32binmysqld --remove mysqld1Service successfully removed.D:mysql-5.7.25-win32binmysqld --remove mysqld2Service successfully removed.

方法2

为每个MySQL服务使用单独的文件来指定选项并且在注册服务时使用–defaults-file选项来告诉每个服务器所要使用的选项文件。在这种情况下,每个文件都将使用[mysqld]选项组。

my3307.cnf文件内容如下:

[mysql]# 设置mysql客户端默认字符集default-character-set=utf8mb4[mysqld]# 设置3307端口port = 3307# 设置mysql的安装目录basedir=D:mysql-5.7.25-win32# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错datadir=D:mysql-5.7.25-win32data3307# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:mysql-5.7.25-win32mysql3307.errpid-file=D:mysql-5.7.25-win32mysqld3307.pidenable-named-pipesocket =D:mysql-5.7.25-win32mysql3307.sock

my3308.cnf文件内容如下:

[mysql]# 设置mysql客户端默认字符集default-character-set=utf8mb4[mysqld]# 设置3308端口port = 3308# 设置mysql的安装目录basedir=D:mysql-5.7.25-win32# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错datadir=D:mysql-5.7.25-win32data3308# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:mysql-5.7.25-win32mysql3308.errpid-file=D:mysql-5.7.25-win32mysqld3308.pidsocket =D:mysql-5.7.25-win32mysql3308.sock

将每个MySQL实例注册成Windows服务

D:mysql-5.7.25-win32binmysqld --install mysqld1 --defaults-file=D:mysql-5.7.25-win32my3307.cnfService successfully installed.D:mysql-5.7.25-win32binmysqld --install mysqld2 --defaults-file=D:mysql-5.7.25-win32my3308.cnfService successfully installed.

启动服务

C:UsersAdministratornet start mysqld1

mysqld1 服务正在启动 .

mysqld1 服务已经启动成功。

C:UsersAdministratornet start mysqld2

mysqld2 服务正在启动 .

mysqld2 服务已经启动成功。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

本文由9159金沙游艺场-奥门金沙游艺场-[欢迎您]发布于前端,转载请注明出处:如何在Windows中运行多个MySQL实例详解

关键词:

MySQL版本低了不支持两个时间戳类型的值解决方法

MySQL报错:错误代码: 1293 Incorrect table definition; there can be onlyone TIMESTAMP column with CURRENT_TIMESTAMP 原因是:两台服务器的...

详细>>

MySQL如何生成唯一的server

前言 我们都清楚MySQL用server-id来独一的标记某些数据库实例,并在链式或双主复制结构中用它来防止sql语句的十二万...

详细>>

MySQL主从同步中的server

前言 当我们搭建MySQL集群时,自然需要完成数据库的主从同步来保证数据一致性。而主从同步的方式也分很多种,一...

详细>>

mysql随机抽取一定数量的记录实例讲解

先前遭逢这种应用景况都以一贯order byrand(卡塔尔(قطر‎来管理的,可是效用实乃不敢恭维,所以这段时间又碰见这种情...

详细>>