首页 > 数据库 >mysql单点多实例部署方式

mysql单点多实例部署方式

时间:2023-11-16 15:58:31浏览次数:52  
标签:opt 单点 -- stop 28 实例 mysqld mysql

一、清理环境

清理方式与mysql-部署相同

二、部署

1.创建mysql目录
mkdir /root/soft
cd /root/soft

2.下载安装包并解压
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
tar -xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C /opt/
mv /opt/mysql-5.7.28-linux-glibc2.12-x86_64 /opt/mysql5.7.28/


3.创建软连接到指定目录下并更名
ln -s /opt/mysql5.7.28/ /opt/mysql

mkdir -p /opt/mysql_3306
mkdir -p /opt/mysql_3307
mkdir -p /opt/mysql_3308
chown -R mysql.mysql /opt/mysql*

4.安装mysql5.7的依赖包
yum install -y libaio-devel numactl

5.设置环境变量
echo 'export PATH=$PATH:/opt/mysql/bin' >> /etc/profile
source /etc/profile

mysql -V
mysql  Ver 14.14 Distrib 5.7.43, for Linux (x86_64) using  EditLine wrapper

6.编译安装并初始化mysql
cd /opt/mysql/bin
./mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql_3306
./mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql_3307
./mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql_3308

7.编辑配置文件my.cnf,添加配置如下
cat >/etc/mysql_3306.cnf <<'EOF'
[mysqld]
port=3306
user=mysql
basedir=/opt/mysql/
datadir=/opt/mysql_3306/
socket=/opt/mysql_3306/mysql.sock
log_error=/opt/mysql_3306/mysql.log
EOF

cat >/etc/mysql_3307.cnf <<'EOF'
[mysqld]
port=3307
user=mysql
basedir=/opt/mysql/
datadir=/opt/mysql_3307/
socket=/opt/mysql_3307/mysql.sock
log_error=/opt/mysql_3307/mysql.log
EOF

cat >/etc/mysql_3308.cnf <<'EOF'
[mysqld]
port=3308
user=mysql
basedir=/opt/mysql/
datadir=/opt/mysql_3308/
socket=/opt/mysql_3308/mysql.sock
log_error=/opt/mysql_3308/mysql.log
EOF

8.编写启停脚本(只需将3306改成对应端口即可)
cat > /opt/3306.sh <<'EOF'
port="3306"
mysql_user="mysql"
Cmdpath="/opt/mysql/bin/"
mysql_sock="/opt/mysql_${port}/mysql.sock"
mysqld_pid_file_path=/opt/mysql_${port}/mysqld_${port}.pid

start(){
if [ ! -e "$mysql_sock" ];then
    printf "Starting MySQL...\n"
    /bin/sh ${Cmdpath}/mysqld_safe --defaults-file=/etc/mysql_${port}.cnf --pid-file=$mysqld_pid_file_path 2>&1 > /dev/null &
    sleep 3
else
    printf "MySQL is running...\n"
    exit 1
fi
}


stop(){
    if [ ! -e "$mysql_sock" ];then
        printf "MySQL is stopped...\n"
        exit 1
    else
        printf "Stoping MySQL...\n"
        mysqld_pid=`cat "$mysqld_pid_file_path"`
    if (kill -0 $mysqld_pid 2>/dev/null)
        then
        kill $mysqld_pid
        sleep 2
        fi
    fi
}



restart(){
    printf "Restarting MySQL...\n"
    stop
    sleep 2
    start
}



case "$1" in
start)
    start
;;
stop)
    stop
;;
restart)
    restart
;;
*)
    printf "Usage: /data/${port}/mysql{start|stop|restart}\n"
esac
EOF

标签:opt,单点,--,stop,28,实例,mysqld,mysql
From: https://www.cnblogs.com/chunjeh/p/17836448.html

相关文章

  • window下mysql更换端口号
    我的情况是:本机原来安装了5版本,现在需要用8版本,因此机器同时存在了两个sql版本,一个占用了3306端口,一个占用了3307端口,但是后端默认配置的是3306端口,需要灵活更改版本和端口号。开始吧,安全的更换mysql的端口号,5和8版本都是一样的操作。停止mysql的服务在对应盘符找到Progra......
  • Knative event Brokers and Triggers 事件传递模式实例
    BrokersandTriggers实例说明eventsource:gitlabsource基于MT通道的broker:defaulttriggertrigger-push->sinkevent-display-push过滤条件:dev.knative.sources.gitlab.pushtriggertrigger-tag-push->sinkevent-display-tag_push过滤条件:dev.knative.......
  • mysql链接不上3306报错10060
    1、控制台进入查看防火墙(前提mysql我的端口是3306,现在大部分人已经不用3306了)firewall-cmd--zone=public--list-ports(查看3306端口是否开启,如果没见到3306端口)2、添加3306firewall-cmd--zone=public--add-port=3306/tcp--parmanent3、如上添加成功了,最重要的一点来......
  • Promise.all(iterable) 参数可以不是数组,但必须具有 Iterator 接口,且返回的每个成员
    下面关于Promise的all方法说法错误的是()Apromise.all(iterable),参数是一个数组B只有这个数组中的所有promise实例都resolve之后才会触发其返回的promise实例的thenC只要其中有任何一个promise实例被reject,那么最终的promise实例将触发catchD触发then时可以只带上iterable......
  • MySQL 8.0 目前仍旧没有解决timestamp时间戳溢出的问题
    在MySQL中,TIMESTAMP列的默认范围是从'1970-01-0100:00:01'到'2038-01-1903:14:07'。如果插入的时间值超出了该范围,MySQL会将其视为无效值,并将其设置为'0000-00-0000:00:00'。在MySQL8.0.35最新版本中,timestamp时间戳溢出的问题目前仍旧没有解决。如下图所示:为了解决这个问题,只......
  • typeof 主要用于检测基本数据类型,对于引用类型不大适用(因为所有引用类型的值都是 Obje
    下面哪些语句可以在JS里判断一个对象是否为String类型?AoStringObjectinstanceofStringBtypeofoStringObject=='string'CoStringObjectisStringD以上答案都不正确正确答案:AJS中值的类型分为原始值类型和对象类型。原始值类型包括number,string,boolean,nul......
  • 首先Function的显示原型prototype和隐式原型__proto__都是同一个 也就是说 构造函数和
    下列说法正确的是()A每个JS对象一定对应一个原型对象,并从原型对象继承属性和方法B对象的__proto__指向自己构造函数的prototypeCObject.prototype.proto===null,说明原型链到Object.prototype终止D表达式Function.prototype.proto.proto===null的运行结果为true正确......
  • 02MYSQL
    字符编码与配置文件#查看MySQL默认字符编码\s"""如果是5.X系列显示的编码有多种latin1gbk如果是8.X系列显示的统一是utf8mb4utf8mb4是utf8优化版本支持存储表情"""#统一字符编码5.X默认编码有多种可能会导致乱码的情况所以......
  • Linux(Centos7)升级MySQL 5.7到8.0.31
    一、下载MySQL安装包下载地址:https://downloads.mysql.com/archives/community/二、备份mkdir/home/mysqlbackmysqldump-uroot-p--all-databases>/home/mysqlback/mysqldback.sql三、卸载MySQL注:卸载之前一定要先备份好数据库1.检查当前系统是否安装过MySQLrpm-q......
  • C++实现YoloV7目标识别与实例分割推理
    前言1.简介7月份,由YOLOV4的原班人马Chien-YaoWang、AlexeyBochkovskiy和Hong-YuanMarkLiao推出的YoloV7,应该是目前开源的目标检测算法最好之一了,它在在5FPS到160FPS范围内的速度和精度达到了新的高度,优于YOLOR、YOLOX、Scaled-YOLOv4、YOLOv5、DETR等多种目标检测器......