ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

多实例MySQL服务配置指南

多实例MySQL服务配置指南 我们在安装MySQL的时候会有处让我们选择服务名的地方这个尽量取唯一值。因为这个服务会写入到注册表严格上不允许出现相同的服务。但是小皮的默认服务名一直是MySQL导致如果还安装了其他的MySQL服务就会导致启动异常小皮永远无法运行这个MySQL因为服务名被原本安装的MySQL占用了。我的计划是让服务名各自唯一端口可以保持相同因为我只需要解决小皮数据库无法启动这个问题就行不需要让它们同时运行。所以每当我使用小皮的时候手动关闭掉MySQL80的服务释放3306端口即可。要是想要电脑/服务器上同时运行多个MySQL的话就也需要再更改不同的端口号。在Windows上配置多个MySQL服务核心在于为每个实例指定唯一的服务名、端口和数据目录。以下是具体配置步骤。1. 准备工作目录与文件结构假设要安装两个MySQL实例MySQL8.0 和 MySQL5.7建议采用如下目录结构D:\mysql\ ├── mysql8.0\ # MySQL 8.0 安装目录 │ ├── bin\ │ ├── data\ # 8.0 数据目录需初始化生成 │ └── my.ini # 8.0 配置文件 └── mysql-5.7\ # MySQL 5.7 安装目录 ├── bin\ ├── data\ # 5.7 数据目录需初始化生成 └── my.ini # 5.7 配置文件2. 配置文件 (my.ini) 定制每个实例必须有独立的配置文件。关键配置项对比如下配置项实例一 (MySQL8.0)实例二 (MySQL5.7)说明服务名MySQL80MySQL57必须唯一用于Windows服务管理端口33063307必须唯一避免端口冲突安装目录D:\mysql\mysql-8.0D:\mysql\mysql-5.7解压或安装的根目录数据目录D:\mysql\mysql-8.0\dataD:\mysql\mysql-5.7\data存放数据库文件的位置Socket文件mysql80.sockmysql57.sock(可选) 用于本地连接避免冲突MySQL 8.0 的my.ini示例[mysqld] # 服务设置 port3306 server-id1 # 目录设置 basedirD:\mysql\mysql-8.0 datadirD:\mysql\mysql-8.0\data # 服务名 (关键) service_nameMySQL80 # 字符集 character-set-serverutf8mb4 collation-serverutf8mb4_0900_ai_ci [mysql] default-character-setutf8mb4 [client] port3306 default-character-setutf8mb4MySQL 5.7 的my.ini示例[mysqld] # 服务设置 port3307 server-id2 # 目录设置 basedirD:\mysql\mysql-5.7 datadirD:\mysql\mysql-5.7\data # 服务名 (关键) service_nameMySQL57 # 字符集 character-set-serverutf8mb4 collation-serverutf8mb4_general_ci [mysql] default-character-setutf8mb4 [client] port3307 default-character-setutf8mb43. 初始化数据目录并安装服务以管理员身份打开命令提示符CMD或 PowerShell分别进入各MySQL的bin目录执行命令。步骤1初始化数据目录# 进入 MySQL 8.0 的 bin 目录 cd /d D:\mysql\mysql-8.0\bin # 执行初始化生成 root 用户的初始密码注意保存 mysqld --defaults-fileD:\mysql\mysql-8.0\my.ini --initialize-insecure--initialize-insecure参数会生成空密码的root账户适合测试。生产环境建议使用--initialize生成随机密码。步骤2安装并启动服务# 安装 MySQL80 服务并指定配置文件 mysqld --install MySQL80 --defaults-fileD:\mysql\mysql-8.0\my.ini # 启动服务 net start MySQL80对MySQL 5.7实例重复上述步骤但需更换路径和服务名# 进入 MySQL 5.7 的 bin 目录 cd /d D:\mysql\mysql-5.7\bin # 初始化 mysqld --defaults-fileD:\mysql\mysql-5.7\my.ini --initialize-insecure # 安装 MySQL57 服务 mysqld --install MySQL57 --defaults-fileD:\mysql\mysql-5.7\my.ini # 启动服务 net start MySQL574. 连接与验证使用指定端口连接对应的MySQL实例# 连接 MySQL 8.0 (端口3306) mysql -u root -P 3306 -p # 连接 MySQL 5.7 (端口3307) mysql -u root -P 3307 -p5. 服务管理命令安装后可通过以下命令管理服务# 查看服务状态 sc query MySQL80 sc query MySQL57 # 停止服务 net stop MySQL80 net stop MySQL57 # 删除服务 (如需卸载) sc delete MySQL80 sc delete MySQL57关键注意事项管理员权限所有安装、初始化、服务操作都必须在管理员命令行中进行。端口与服务名唯一性这是多实例共存的基础务必确保不冲突。配置文件路径使用--defaults-file参数安装服务时必须提供配置文件的绝对路径。数据目录权限确保运行MySQL服务的账户如NETWORK SERVICE对data目录有完全控制权否则会导致启动失败。参考来源window下一台PC机器上安装多个mysql的方法windows 安装mysql多个版本同时安装【Mysql】window下Mysql安装两个版本- 5.6 和 8.0免安装版本及其配置Windows下MySQL多实例运行mysql 5.6 dev_Windows 7安装解压版MySQL 5.6不包含配置文件优化
返回列表