• 六、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!!!
  • 相关阅读:
    Cross-Site Scripting XSS 跨站攻击全攻略 分类: 系统架构 2015-07-08 12:25 21人阅读 评论(2) 收藏
    WAS集群:记一次Node Agent不活动问题解决过程
    Oracle RAC集群资料收集
    Linux使用 tar命令-g参数进行增量+差异备份、还原文件
    WAS7.0安装补丁升级程序无法替换文件 java/docs/autorun.inf解决办法
    Java程序员面试失败的5大原因
    Lemon OA第4篇:常用功能
    Lemon OA第3篇:核心功能
    Lemon OA第2篇:功能解析方法
    Activiti5小试牛刀demo流程
  • 原文地址:https://www.cnblogs.com/yaokaka/p/13924590.html
Copyright © 2020-2023  润新知