同台服务器上部署多个Mysql数据库

文章详细介绍了如何创建新的MySQL服务,包括复制数据库文件夹以区分不同版本,创建并修改服务,调整注册表以指定服务路径,以及如何查找和修改默认密码。同时,提到了数据存储的位置和如何改变数据存储路径,以及配置文件的修改方法。

1、新建数据库在这里插入图片描述
将已安装好的5.7版本库文件夹复制一份,文件夹改为5.8,只为区分文件,与版本无关,名字自定义即可。

2、创建服务:

管理员身份cmd进入C:\Program Files\MySQL\MySQL Server 5.8\bin路径,输入mysqld install Mysql58
创建成功显示Service successfully installed
启动失败,显示“本地计算机上的mysql服务启动后停止,....."

服务创建成功之后,要进行修改注册表,通过regedit 进入注册表,
找到HKEY_LOCAL_MACHINE--->SYSTEM--->CurrentControlSet--->Services 这个目录下,
然后找到刚才创建的Mysql58,将ImagePath 
修改成  "C:\Program Files\MySQL\MySQL Server 5.8\bin\mysqld" --defaults-file=
"C:\Program Files\MySQL\MySQL Server 5.8\my-default.ini" Mysql58 ,

在这里插入图片描述
原5.7数据库若在启动状态则需修改5.8文件夹下的配置文件默认端口。
在这里插入图片描述

3、登录
MYSQL 安装后默认密码在安装目录data下.err文件中,在文件中搜索password。
cmd登录mysql:带端口号,默认端口不是3306
mysql -h 127.0.0.1 -u root -p -P 3308
端口号默认是3306,
mysql -u root -p

登录后修改密码:
set password for root@localhost = password(‘123456’);

在这里插入图片描述

3、数据存储data

数据存储data文件默认会C:\Program Files\MySQL\MySQL Server 5.8路径下(图一),
想修改存储路径可在新建立库实例后会有data显示,可将data文件复制到(图二)

在这里插入图片描述
(图一)

(图二)
将图一中的my-dafault配置文件修改:
在这里插入图片描述

### 问题分析 在已经部署了另一个消息队列(MQ)的情况下,修改 ActiveMQ 的端口后无法启动,通常是由于以下原因导致: 1. **端口冲突**:若修改后的端口已被其他服务(如 RabbitMQ、Kafka 或其他 ActiveMQ 实例)占用,则 ActiveMQ 将无法正常启动。例如,RabbitMQ 默认使用 `5672` 端口,而 ActiveMQ 默认使用 `61616` 作为数据通信端口[^3]。 2. **配置文件错误**:在修改 `activemq.xml` 或 `jetty.xml` 文件时,如果格式不正确或遗漏了某些配置项,也可能导致服务启动失败。例如,在 `jetty.xml` 中设置 Web 控制台端口时,若未正确关闭原有监听端口或将多个实例配置为相同端口,将引发异常[^1]。 3. **Docker 容器配置问题**:若 ActiveMQ 是通过 Docker 部署的,修改端口后需确保容器映射的端口与宿主机端口一致,并且在重启容器前已正确更新配置文件[^2]。 4. **防火墙或 SELinux 设置**:若新端口未被系统防火墙允许,或者 SELinux 限制了该端口的访问,也会造成 ActiveMQ 启动失败。 --- ### 解决方案 #### 检查并避免端口冲突 在修改 ActiveMQ 的端口后,应首先检查目标端口是否已被其他服务占用。可以使用以下命令查看端口占用情况: ```bash netstat -tulnp | grep <port> ``` 例如,若修改后的 ActiveMQ 数据通信端口为 `61617`,则执行: ```bash netstat -tulnp | grep 61617 ``` 如果发现该端口已被占用,建议更换为其他未被使用的端口,以避免与其他 MQ 服务发生冲突[^3]。 #### 验证配置文件完整性 确保 `conf/activemq.xml` 和 `conf/jetty.xml` 中的端口配置正确无误。例如,在 `activemq.xml` 中应确认 `<transportConnector>` 标签的 `uri` 属性指向新的端口号: ```xml <transportConnector name="openwire" uri="tcp://0.0.0.0:61617"/> ``` 在 `jetty.xml` 中应确认 Web 控制台端口配置如下: ```xml <bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start"> <property name="port" value="8162"/> </bean> ``` 修改完成后,重新启动 ActiveMQ 服务: ```bash ./bin/activemq start ``` 若启动失败,可查看日志文件 `data/activemq.log` 获取详细错误信息。 #### Docker 环境下的处理方式 若 ActiveMQ 是通过 Docker 容器部署的,需确保容器内的配置文件已同步更新,并且运行时映射了正确的端口。例如,在启动容器时应指定新的端口映射: ```bash docker run -d -p 61617:61616 -p 8162:8161 -v /path/to/conf:/opt/activemq/conf rmohr/activemq ``` 上述命令将容器内部的 `61616` 映射到宿主机的 `61617`,并将 Web 控制台端口从 `8161` 映射到 `8162`。确保挂载的配置文件中也相应地修改了端口设置[^2]。 #### 检查系统防火墙和 SELinux 设置 如果 ActiveMQ 服务仍然无法启动,应检查系统防火墙是否阻止了新端口的访问。例如,在 Linux 上可以使用以下命令开放端口: ```bash sudo ufw allow 61617/tcp ``` 此外,若启用了 SELinux,可能需要调整策略以允许 ActiveMQ 使用非标准端口: ```bash sudo semanage port -a -t http_port_t -p tcp 8162 ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值