千家信息网

怎么在Windows中运行多个MySQL

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要讲解了"怎么在Windows中运行多个MySQL",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么在Windows中运行多个MySQL"吧
千家信息网最后更新 2024年09月22日怎么在Windows中运行多个MySQL

这篇文章主要讲解了"怎么在Windows中运行多个MySQL",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么在Windows中运行多个MySQL"吧!

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-win32\data3307# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:\mysql-5.7.25-win32\mysql3307.errpid-file=D:\mysql-5.7.25-win32\mysqld3307.pidsocket =D:\mysql-5.7.25-win32\mysql3307.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-win32\data3308# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:\mysql-5.7.25-win32\mysql3308.errpid-file=D:\mysql-5.7.25-win32\mysqld3308.pidsocket =D:\mysql-5.7.25-win32\mysql3308.sock

3.初始化新数据库

D:\mysql-5.7.25-win32\bin>mysqld  --defaults-file=D:\mysql-5.7.25-win32\my3307.cnf --initialize --basedir=D:\mysql-5.7.25-win32 --datadir=D:\mysql-5.7.25-win32\data3307D:\mysql-5.7.25-win32\bin>mysqld  --defaults-file=D:\mysql-5.7.25-win32\my3308.cnf --initialize --basedir=D:\mysql-5.7.25-win32 --datadir=D:\mysql-5.7.25-win32\data3308

4.启动数据库

D:\mysql-5.7.25-win32\bin>mysqld  --defaults-file=D:\mysql-5.7.25-win32\my3307.cnfD:\mysql-5.7.25-win32\bin>mysqld  --defaults-file=D:\mysql-5.7.25-win32\my3308.cnf

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

5.登录数据库修改密码

C:\Users\Administrator>mysql --port=3307 --host=127.0.0.1 --user=root --password=U0U?KinrdWHbmysql: [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:\Users\Administrator>mysql --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:\Users\Administrator>mysql --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:\Users\Administrator>mysql --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:\Users\Administrator>mysqladmin --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:\Users\Administrator>mysqladmin --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-win32\data3307# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:\mysql-5.7.25-win32\mysql3307.errpid-file=D:\mysql-5.7.25-win32\mysqld3307.pidenable-named-pipesocket =D:\mysql-5.7.25-win32\mysql3307.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-win32\data3308# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:\mysql-5.7.25-win32\mysql3308.errpid-file=D:\mysql-5.7.25-win32\mysqld3308.pidsocket =D:\mysql-5.7.25-win32\mysql3308.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服务。

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

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

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

D:\mysql-5.7.25-win32\bin>mysqld --install mysqld1Service successfully installed.D:\mysql-5.7.25-win32\bin>mysqld --install mysqld2Service successfully installed.

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

C:\Users\Administrator>net start mysqld1mysqld1 服务正在启动 .mysqld1 服务已经启动成功。C:\Users\Administrator>net start mysqld2mysqld2 服务正在启动 .mysqld2 服务已经启动成功。为了停止MySQL服务,使用服务管理器或者使用net stop servicename:C:\Users\Administrator>net stop mysqld1mysqld1 服务正在停止.mysqld1 服务已成功停止。C:\Users\Administrator>net stop mysqld2mysqld2 服务正在停止.mysqld2 服务已成功停止。

删除服务

D:\mysql-5.7.25-win32\bin>mysqld --remove mysqld1Service successfully removed.D:\mysql-5.7.25-win32\bin>mysqld --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-win32\data3307# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:\mysql-5.7.25-win32\mysql3307.errpid-file=D:\mysql-5.7.25-win32\mysqld3307.pidenable-named-pipesocket =D:\mysql-5.7.25-win32\mysql3307.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-win32\data3308# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8mb4# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBexplicit_defaults_for_timestamp=truelog-error=D:\mysql-5.7.25-win32\mysql3308.errpid-file=D:\mysql-5.7.25-win32\mysqld3308.pidsocket =D:\mysql-5.7.25-win32\mysql3308.sock

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

D:\mysql-5.7.25-win32\bin>mysqld --install mysqld1 --defaults-file=D:\mysql-5.7.25-win32\my3307.cnfService successfully installed.D:\mysql-5.7.25-win32\bin>mysqld --install mysqld2 --defaults-file=D:\mysql-5.7.25-win32\my3308.cnfService successfully installed.

启动服务

C:\Users\Administrator>net start mysqld1mysqld1 服务正在启动 .mysqld1 服务已经启动成功。C:\Users\Administrator>net start mysqld2mysqld2 服务正在启动 .mysqld2 服务已经启动成功。

感谢各位的阅读,以上就是"怎么在Windows中运行多个MySQL"的内容了,经过本文的学习后,相信大家对怎么在Windows中运行多个MySQL这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

服务 字符 字符集 数据 目录 实例 数据库 文件 端口 配置 最大 内容 客户 客户端 引擎 系统 编码 存储 生成 多个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 qq浏览器内部服务器错误 秦皇岛精益管理软件开发 和平精英主播服务器配置要求 国外建立中国网站服务器 曲江软件开发公司电话 生物技术与数据库 阿里云学生服务器释放 客服端和服务器端有什么不同 明朝网络安全企业 天虹技工学校网络技术 幻塔华为端和官网端服务器能转吗 服务器配置与管理什么是组 新闻获取方式数据库 紫金农商银行数据库一体机 天龙八部手游服务器虎啸神州 网络安全教育优酷视频下载 数据库库存统计分析 山东什么是软件开发设施推广 数据库主账号数据怎么转移 河南数据库技术公司 从服务器管理器安装桌面体验 数据库合库是什么意思 服务器管理器怎么添加域名 计算机网络技术综合检测卷 幻塔华为端和官网端服务器能转吗 网络技术就业情况 战地1服务器管理指令 数据库表空间自动扩展 2021.10.4 连接服务器失败原因 数据库用的什么接口
0