本教程仅适用于已经安装好了Windows版RabbitMQ
-
首先准备配置文件,可以参考官方示例的配置文件
https://github.com/rabbitmq/rabbitmq-server/blob/main/deps/rabbit/docs/rabbitmq.conf.example
配置文件文档:https://www.rabbitmq.com/configure.html
-
添加系统环境变量
RABBITMQ_CONFIG_FILE
如果配置文件路径为:D:\rabbitmq_server-3.11.2\sbin\rabbitmq.conf
那么环境变的值为:D:\rabbitmq_server-3.11.2\sbin\rabbitmq
(不包含后缀)
如图
- 重新安装RabbitMQ服务
- 使用cmd进入RabbitMQ目录下的sbin文件夹,然后执行命令
rabbitmq-service.bat install
安装服务,接着再执行rabbitmq-service.bat start
启动服务
如图
- 进入RabbitMQ后台查看配置文件是否生效
结果发现配置文件虽然已生效,但Database directory和Log files还在C盘
- 设置
Database directory
和Log files
目录
- 查询了资料得知,Windows版RabbitMQ需要修改
rabbitmq-env.bat
文件才能实现
具体步骤就是在
ERLANG_HOME
方法后增加一段代码set RABBITMQ_BASE=<路径>
,这里演示的就直接放RabbitMQ目录下的data目录if not defined ERLANG_HOME ( for /f "delims=" %%F in ('powershell.exe -NoLogo -NoProfile -NonInteractive -Command "(Get-Command erl.exe).Definition"') do @set ERL_PATH=%%F if exist "!ERL_PATH!" ( for /f "delims=" %%F in ("!ERL_PATH!") do set ERL_DIRNAME=%%~dpF for /f "delims=" %%F in ("!ERL_DIRNAME!\..") do @set ERLANG_HOME=%%~dpF%%~nF%%~xF ) set ERL_PATH= set ERL_DIRNAME= ) set RABBITMQ_BASE=!RABBITMQ_HOME!/data
如图
保存完后不要急着启动,还需要第5步的数据迁移操作,不然之前的数据都没了
- 迁移
Database directory
和Log files
目录
-
首先得执行
rabbitmq-service.bat stop
停止RabbitMQ服务,不然服务运行过程中迁移数据可能会出问题 -
从RabbitMQ的官方文档知道目录Windows版RabbitMQ默认工作目录为
%APPDATA%\RabbitMQ\
,而 %APPDATA% 的目录一般是C:\Users\<用户名>\AppData\Roaming
,我这里用户名是Administrator,则%APPDATA%\RabbitMQ\
就是C:\Users\Administrator\AppData\Roaming\RabbitMQ\
-
好了现在需要做的就是将
C:\Users\Administrator\AppData\Roaming\RabbitMQ\
目录下所有文件复制到第4步所设置的目录下(这里演示的是RabbitMQ目录下的data目录)
-
然后还需执行第3步的命令
rabbitmq-service.bat install
安装服务,接着再执行rabbitmq-service.bat start
启动服务 -
再次进入RabbitMQ后台查看目录是否生效,从下图看出目录已生效
end