linux系统多个mysql时的部署和服务注册

在一次实际部署过程中,碰到了服务器已经部署了一个mysql服务. 再部署新的mysql时,特别注意不能与另一个mysql互相影响.记录一次部署中存在的问题和解决方法.

因为已存在mysql,新的mysql部署采用的是mysql.tar.gz解压手动安装,避免.rpm或者.deb等自动安装方式覆盖了已有mysql的配置或者数据.

已部署的mysql服务查看与新mysql的服务部署选择

查看mysql配置文件的默认加载路径 /etc/mysql/my.cnf或者 /etc/my.cnf是否被占用

1.已存在的mysql服务占用了默认的加载路径

配置文件如果存在,查看里面配置的端口,如果与正在运行的mysql占用端口一致,则说明已存在的mysql已经占用了mysql的默认服务.

故新mysql不可以采用初始化后,将mysql解压目录下mysql.server服务文件放到/etc/init.d/mysqld/下,因为这样部署的新mysql服务会默认加载已存在的配置路径,无法运行.

因此,必须将mysql的服务,手动编写脚本,指定加载配置文件的路径,才能避免冲突.

以ubuntu为例:
//1.编写服务文件 mysql_new.service,指定配置文件

[Unit]
Description=mysql
After=

[Service]
Type=forking
WorkingDirectory=/mysql
ExecStart=/mysql/bin/mysqld_safe --defaults-file=/mysql/etc/my.cnf &

[Install]
WantedBy=multi-user.target

//2.服务文件移到系统路径,使得mysql_new作为服务名能被系统识别
mv mysql_new.service /etc/systemd/system/
//3.加载服务变动
systemctl daemon-reload
//4.服务开机自启动设置
systemctl enable mysql_new.service
//启动新mysql
service mysql_new start

注:mysql的默认加载路径优先级,/etc/mysql/my.cnf > /etc/my.cnf.

2.已存在的mysql服务未占用默认的加载路径

在初始化了数据库后,复制mysql的解压包内 support-files/mysql.server 到 /etc/init.d/mysqld/,

设置mysql自启动: chkconfig --add mysqld 或者 systemctl enable mysqld

然后就可以启动新的mysql了

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值