暂无图片
如何利用/etc/init.d/mysql1和mariadb不同实例服务名称配置自启动
我来答
分享
手机用户1559
2023-12-20
如何利用/etc/init.d/mysql1和mariadb不同实例服务名称配置自启动

问题,想利用/etc/init.d/服务 配置两个mysql和mariadb实例随开机自动启动,及服务是如何调用的

环境:centos7,安装有mysql5和mariadb10两个实例

         分别把mysql的mysql.server 拷贝到/etc/init.d/aaa

                   mariadb的mysql.server 拷贝到/etc/init.d/bbb

         手工启动的 对应配置文件 mysql用的/etc/my.cnf ,mariadb用的是/etc/mysql/my.cnf

目前,只能有一个生效自动启动,而且没搞明白 /etc/init.d/服务 启动是如何调用的 basedir、datadir(虽然服务文件内容有这两个参数,但测试的结果是和这两个参数没多大关系)和配置文件的

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
yBmZlQzJ

首先,你需要将两个MySQL和MariaDB实例的配置文件分别修改为以下内容:

对于MySQL 5实例:

        

复制代码

[mysqld] basedir=/usr/local/mysql datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock pid-file=/var/run/mysqld/mysqld.pid port=3306 user=mysql log_error=/var/log/mysql/error.log log_output=/var/log/mysql/output.log

对于MariaDB 10实例:

        

复制代码

[mariadb] basedir=/usr datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock pid-file=/var/run/mariadb/mariadb.pid port=3306 user=mysql log_error=/var/log/mysql/error.log log_output=/var/log/mysql/output.log

然后,将这两个配置文件分别拷贝到/etc/init.d/aaa/etc/init.d/bbb

接下来,你需要编辑这两个服务文件,添加启动命令。在/etc/init.d/aaa中添加以下内容:

        

复制代码

#!/bin/sh ### BEGIN INIT INFO # Provides: aaa # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/mysql/bin/mysqld_safe NAME=mysql DESC=mysqld test -x "$DAEMON" || exit 0 case "$1" in start) echo -n "Starting $DESC: " $DAEMON --defaults-file=/etc/my.cnf &> /dev/null if [ $? -eq 0 ]; then echo "OK" else echo "FAILED" fi ;; stop) echo -n "Stopping $DESC: " killall -q $NAME if [ $? -eq 0 ]; then echo "OK" else echo "FAILED" fi ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0

/etc/init.d/bbb中添加以下内容:

        

复制代码

#!/bin/sh ### BEGIN INIT INFO # Provides: bbb # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/bin/mysqld_safe NAME=mariadb DESC=mariadb test -x "$DAEMON" || exit 0 case "$1" in start) echo -n "Starting $DESC: " $DAEMON --defaults-file=/etc/mysql/my.cnf &> /dev/null if [ $? -eq 0 ]; then echo "OK" else echo "FAILED" fi ;; stop) echo -n "Stopping $DESC: " killall -q $NAME if [ $? -eq 0 ]; then echo "OK" else echo "FAILED" fi ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0

最后,给这两个服务文件添加可执行权限:

        

bash复制代码

chmod +x /etc/init.d/aaa /etc/init.d/bbb

现在,你可以使用以下命令来启动和停止这两个服务:

        

bash复制代码

sudo /etc/init.d/aaa start sudo /etc/init.d/aaa stop sudo /etc/init.d/bbb start sudo /etc/init.d/bbb stop

注意:端口不能冲突,否则只能启动一个。
暂无图片 评论
暂无图片 有用 3
暂无图片
手机用户1559
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
mysql和mariadb这两个配置是一样的 ?
暂无图片 评论
暂无图片 有用 4
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏