zoukankan      html  css  js  c++  java
  • 六、mysql的多实例部署

    一、实验环境

    mysql数据库ip:192.168.32.201
    系统版本
    [root@vm01 ~]# cat /etc/redhat-release 
    CentOS Linux release 7.6.1810 (Core) 
    数据库版本
    mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

    二、部署步骤

    1、mysql5.7的二进制部署

    省略

    2、准备多个目录

    mkdir -p /data/330{7,8,9}/data

    3、准备配置文件

    cat >> /data/3307/my.cnf <<EOF
    [mysqld]
    basedir=/app/mysql
    datadir=/data/3307/data
    socket=/data/3307/mysql.sock
    log_error=/data/3307/mysql.log
    port=3307
    server_id=3307
    log_bin=/data/3307/mysql-bin
    [mysql]
    socket=/data/3307/mysql.sock
    EOF
    
    cat >> /data/3308/my.cnf <<EOF
    [mysqld]
    basedir=/app/mysql
    datadir=/data/3308/data
    socket=/data/3308/mysql.sock
    log_error=/data/3308/mysql.log
    port=3308
    server_id=3308
    log_bin=/data/3308/mysql-bin
    [mysql]
    socket=/data/3308/mysql.sock
    EOF
    
    cat >> /data/3309/my.cnf <<EOF
    [mysqld]
    basedir=/app/mysql
    datadir=/data/3309/data
    socket=/data/3309/mysql.sock
    log_error=/data/3309/mysql.log
    port=3309
    server_id=3309
    log_bin=/data/3309/mysql-bin
    [mysql]
    socket=/data/3309/mysql.sock
    EOF

    4、 初始化三套数据

    mv /etc/my.cnf /etc/my.cnf.bak
    mysqld --initialize-insecure  --user=mysql --datadir=/data/3307/data --basedir=/app/mysql
    mysqld --initialize-insecure  --user=mysql --datadir=/data/3308/data --basedir=/app/mysql
    mysqld --initialize-insecure  --user=mysql --datadir=/data/3309/data --basedir=/app/mysql

    5、systemd管理多实例

    cd /etc/systemd/system
    cp mysqld.service mysqld3307.service
    cp mysqld.service mysqld3308.service
    cp mysqld.service mysqld3309.service
    
    vim mysqld3307.service
    ExecStart=/app/mysql/bin/mysqld  --defaults-file=/data/3307/my.cnf
    vim mysqld3308.service
    ExecStart=/app/mysql/bin/mysqld  --defaults-file=/data/3308/my.cnf
    vim mysqld3309.service
    ExecStart=/app/mysql/bin/mysqld  --defaults-file=/data/3309/my.cnf

    6、数据目录授权

    chown -R mysql.mysql /data/*
    chown -R mysql.mysql /app/mysql/*

    7、启动数据库

    systemctl start mysqld3307.service
    systemctl start mysqld3308.service
    systemctl start mysqld3309.service

    8、测试

    netstat -lnp|grep 330
    mysql -S /data/3307/mysql.sock -e "select @@server_id"
    mysql -S /data/3308/mysql.sock -e "select @@server_id"
    mysql -S /data/3309/mysql.sock -e "select @@server_id"

    三、systemctl启动脚本

     
    cat >> /etc/systemd/system/mysqld.service <<EOF 
    [Unit]
    Description=MySQL Server
    Documentation=man:mysqld(8)
    Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
    After=network.target
    After=syslog.target
    [Install]
    WantedBy=multi-user.target
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    #注意mysqld的命令和配置文件路径
    LimitNOFILE = 5000
    EOF
     
    I have a dream so I study hard!!!
  • 相关阅读:
    js == 和 === 判断原理
    react 渲染原理
    常见的HTTP状态码
    类数组和数组的区别是什么?
    如何判断一个变量是不是数组?
    typeof 是否正确判断类型? instanceof呢? instanceof 的实现原理是什么?
    前端 js data数组转tree数据结构
    Echarts 基础学习
    Vue CLI 4.0 项目搭建
    Echarts Demo
  • 原文地址:https://www.cnblogs.com/yaokaka/p/13924590.html
Copyright © 2011-2022 走看看