zoukankan      html  css  js  c++  java
  • mysql运维之-单机多实例(多进程的方式)

    本文实践的是多进程的方式做MYSQL单机多实例,一个实例一个进程,各实例有自己的配置文件,总结起来有以下几点:

    • 端口port分开
    • 配置文件分开
    • socket分开
    • 日志分开
    • 多serverid
    • 都可以使用mysql用户

    1.源代码编译安装&配置MYSQL环境变量(略)
    2.配置多实例

    MYSQL版本:5.7.28
    2.1.创建多个数据目录
    mkdir /data/{3307,3306,3308} -p

    2.2.准备多个配置文件

    root@lzr-K401LB:/etc/systemd/system# cat /data/3306/my.cnf
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/data/3306/data
    port=3306
    socket=/data/3306/mysql.sock
    log-error=/data/3306/data/mysql.err
    log-bin=/data/3306/data/mysql-bin
    server_id=6
    explicit_defaults_for_timestamp=true
    
    #skip-grant-tables
    root@lzr-K401LB:/etc/systemd/system# 
    3306
    root@lzr-K401LB:/etc/systemd/system# cat /data/3307/my.cnf
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/data/3307/data
    port=3307
    socket=/data/3307/mysql.sock
    log-error=/data/3307/data/mysql.err
    log-bin=/data/3307/data/mysql-bin
    server_id=7
    explicit_defaults_for_timestamp=true
    
    #skip-grant-tables
    root@lzr-K401LB:/etc/systemd/system# 
    3307
    root@lzr-K401LB:/etc/systemd/system# cat /data/3308/my.cnf
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/data/3308/data
    port=3308
    socket=/data/3308/mysql.sock
    log-error=/data/3308/data/mysql.err
    log-bin=/data/3308/data/mysql-bin
    server_id=8
    explicit_defaults_for_timestamp=true
    
    #skip-grant-tables
    root@lzr-K401LB:/etc/systemd/system# 
    3308



    2.3 初始化多套数据目录
    cd /usr/mysql/bin
    ./mysql_install_db --defaults-file=/data/3306/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data
    ./mysql_install_db --defaults-file=/data/3307/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data
    ./mysql_install_db --defaults-file=/data/3308/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/data


    2.4 文件权限
    chown -R mysql.mysql /data

    2.4 启动&关闭MYSQL多实例

    cd /usr/mysql/bin
    启动
    ./mysqld_safe --defaults-file=/data/3307/my.cnf &
    ./mysqld_safe --defaults-file=/data/3306/my.cnf &

    ./mysqld_safe --defaults-file=/data/3308/my.cnf &

    关闭(无密码)

    ./mysqladmin -S /data/3306/mysql.sock shutdown

    ./mysqladmin -S /data/3307/mysql.sock shutdown

    ./mysqladmin -S /data/3308/mysql.sock shutdown
    关闭(有密码)
    ./mysqladmin -uroot -p123456  -S /data/3306/mysql.sock shutdown
    ./mysqladmin -uroot -p123456  -S /data/3307/mysql.sock shutdown
    ./mysqladmin -uroot -p123456  -S /data/3308/mysql.sock shutdown
    2.5 查看端口占用

    root@lzr-K401LB:/usr/local/mysql/bin# netstat  -ln | grep 330
    tcp6       0      0 :::3306                 :::*                    LISTEN     
    tcp6       0      0 :::3307                 :::*                    LISTEN     
    tcp6       0      0 :::3308                 :::*                    LISTEN     
    unix  2      [ ACC ]     STREAM     LISTENING     711534   /data/3306/mysql.sock
    unix  2      [ ACC ]     STREAM     LISTENING     713104   /data/3307/mysql.sock
    unix  2      [ ACC ]     STREAM     LISTENING     713814   /data/3308/mysql.sock
    root@lzr-K401LB:/usr/local/mysql/bin# 
    View Code



    2.6 设置多实例密码

    cd /usr/mysql/bin
    ./mysqladmin -uroot -S /data/3306/mysql.sock password '123456'
    ./mysqladmin -uroot -S /data/3307/mysql.sock password '123456'
    ./mysqladmin -uroot -S /data/3308/mysql.sock password '123456'
    2.7 验证库连接

    root@lzr-K401LB:/usr/local/mysql/bin# ./mysql -uroot -p123456 -S /data/3306/mysql.sock
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.7.28-log Source distribution
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> show variables like 'server_id';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | server_id     | 6     |
    +---------------+-------+
    1 row in set (0.01 sec)
    
    mysql> 
    3306
    root@lzr-K401LB:/usr/local/mysql/bin# ./mysql -uroot -p123456 -S /data/3307/mysql.sock
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.7.28-log Source distribution
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> show variables like 'server_id';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | server_id     | 7     |
    +---------------+-------+
    1 row in set (0.01 sec)
    
    mysql> 
    3307
    root@lzr-K401LB:/usr/local/mysql/bin# ./mysql -uroot -p123456 -S /data/3308/mysql.sock
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.7.28-log Source distribution
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql>  show variables like 'server_id';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | server_id     | 8     |
    +---------------+-------+
    1 row in set (0.00 sec)
    
    mysql> 
    3308


    2.8 忘记密码
    修改my.cnf
    [mysqld]
    skip-grant-tables
    启动mysql
    修改密码
    flush privileges;
    alter user 'root'@'localhost' identified with mysql_native_password by '123456';
    flush privileges;

    2.9 配置后台服务+开机启动

    配置3306-3308后台服务

    root@lzr-K401LB:/etc/systemd/system# cat /etc/systemd/system/mysqld3306.service 
    [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=/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf
    LimitNOFILE = 5000
    View Code

    添加执行权限

    root@lzr-K401LB:/etc/systemd/system# chmod a+x mysqld3306.service
    root@lzr-K401LB:/etc/systemd/system# chmod a+x mysqld3307.service
    root@lzr-K401LB:/etc/systemd/system# chmod a+x mysqld3308.service
    root@lzr-K401LB:/etc/systemd/system# 
    View Code

    配置开机启动

    root@lzr-K401LB:/etc/systemd/system# systemctl enable mysqld3306.service
    Created symlink /etc/systemd/system/multi-user.target.wants/mysqld3306.service → /etc/systemd/system/mysqld3306.service.
    root@lzr-K401LB:/etc/systemd/system# systemctl enable mysqld3307.service
    Created symlink /etc/systemd/system/multi-user.target.wants/mysqld3307.service → /etc/systemd/system/mysqld3307.service.
    root@lzr-K401LB:/etc/systemd/system# systemctl enable mysqld3308.service
    Created symlink /etc/systemd/system/multi-user.target.wants/mysqld3308.service → /etc/systemd/system/mysqld3308.service.
    View Code

    启动服务

    root@lzr-K401LB:/etc/systemd/system# systemctl start mysqld3306.service
    root@lzr-K401LB:/etc/systemd/system# systemctl start mysqld3307.service
    root@lzr-K401LB:/etc/systemd/system# systemctl start mysqld3308.service
    root@lzr-K401LB:/etc/systemd/system# ps aux|grep mysql
    mysql    14853  0.0  0.0   4624  1792 ?        Ss   13:24   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf
    mysql    15019  1.6  2.2 1321440 182324 ?      Sl   13:24   0:00 /usr/local/mysql/bin/mysqld --defaults-file=/data/3306/my.cnf --basedir=/usr/local/mysql --datadir=/data/3306/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/data/3306/data/mysql.err --pid-file=lzr-K401LB.pid --socket=/data/3306/mysql.sock --port=3306
    mysql    15051  0.0  0.0   4624  1696 ?        Ss   13:24   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf
    mysql    15217  2.0  2.2 1321440 181872 ?      Sl   13:24   0:00 /usr/local/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf --basedir=/usr/local/mysql --datadir=/data/3307/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/data/3307/data/mysql.err --pid-file=lzr-K401LB.pid --socket=/data/3307/mysql.sock --port=3307
    mysql    15250  0.0  0.0   4624  1760 ?        Ss   13:24   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3308/my.cnf
    mysql    15416  2.3  2.2 1321440 182032 ?      Sl   13:24   0:00 /usr/local/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf --basedir=/usr/local/mysql --datadir=/data/3308/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/data/3308/data/mysql.err --pid-file=lzr-K401LB.pid --socket=/data/3308/mysql.sock --port=3308
    root     15455  0.0  0.0  16172  1004 pts/2    S+   13:24   0:00 grep --color=auto mysql
    root@lzr-K401LB:/etc/systemd/system# 
    View Code
  • 相关阅读:
    三元表达式 列表和字典推导式 函数对象 名称空间 作用域 global和nonlocal 函数装饰器 枚举对象
    函数参数 打散机制 字符串比较 返回值
    函数简介
    三种字符串的介绍 文件的读写
    字符编码
    数据类型及其常用方法 数据类型转换 可变与不可变 值拷贝与深浅拷贝
    流程控制 while和for循环
    变量命名规范 常量 输入和输出 注释 数据类型 运算符 逻辑运算符
    语言分类 编译型和解释型语言分析 环境变量 代码执行的方式 pip介绍 变量
    Python django tests
  • 原文地址:https://www.cnblogs.com/danmoqingshan/p/12640274.html
Copyright © 2011-2022 走看看