• MySQL多实例


    1.实例

    1.单实例:
        1个进程 + 多个线程 + 单个预分配的内存空间
    
    2.多实例:
        多个进程 + 多个线程 + 多个预分配的内存空间
    
    3.MySQL多实例:
        1)多个端口
        2)多个socket文件
        3)多个server_id
        4)多个日志文件
        5)多个配置文件
        6)多个数据目录

    2.创建多实例存放目录

    [root@db02 /service]# mkdir /service/{3307,3308,3309}

    3.配置多个配置文件

    [root@db02 /service]# vim /service/3307/my.cnf
    [mysqld]
    basedir=/service/mysql
    datadir=/service/3307/data
    port=3307
    socket=/service/3307/data/mysql.sock
    server_id=7
    log-error=/service/3307/data/mysql.err
    
    [root@db02 /service]# vim /service/3308/my.cnf
    [mysqld]
    basedir=/service/mysql
    datadir=/service/3308/data
    port=3308
    socket=/service/3308/data/mysql.sock
    server_id=8
    log-error=/service/3308/data/mysql.err
    
    [root@db02 /service]# vim /service/3309/my.cnf
    [mysqld]
    basedir=/service/mysql
    datadir=/service/3309/data
    port=3309
    socket=/service/3309/data/mysql.sock
    server_id=9
    log-error=/service/3309/data/mysql.err

    4.初始化多实例数据目录

    [root@db02 /service]# cd mysql/scripts/
    [root@db02 /service/mysql/scripts]# ./mysql_install_db --defaults-file=/service/3307/my.cnf --user=mysql --basedir=/service/mysql --datadir=/service/3307/data
    [root@db02 /service/mysql/scripts]# ./mysql_install_db --defaults-file=/service/3308/my.cnf --user=mysql --basedir=/service/mysql --datadir=/service/3308/data
    [root@db02 /service/mysql/scripts]# ./mysql_install_db --defaults-file=/service/3309/my.cnf --user=mysql --basedir=/service/mysql --datadir=/service/3309/data
    
    [root@db02 /service]# tree -L 3 ./
    ./
    ├── 3307
    │   ├── data
    │   │   ├── ibdata1
    │   │   ├── ib_logfile0
    │   │   ├── ib_logfile1
    │   │   ├── mysql
    │   │   ├── mysql.err
    │   │   ├── performance_schema
    │   │   └── test
    │   └── my.cnf
    ├── 3308
    │   ├── data
    │   │   ├── ibdata1
    │   │   ├── ib_logfile0
    │   │   ├── ib_logfile1
    │   │   ├── mysql
    │   │   ├── mysql.err
    │   │   ├── performance_schema
    │   │   └── test
    │   └── my.cnf
    ├── 3309
    │   ├── data
    │   │   ├── ibdata1
    │   │   ├── ib_logfile0
    │   │   ├── ib_logfile1
    │   │   ├── mysql
    │   │   ├── mysql.err
    │   │   ├── performance_schema
    │   │   └── test
    │   └── my.cnf
    ├── mysql -> /service/mysql-5.6.42
    └── mysql-5.6.42

    5.授权

    [root@db02 /service]# chown -R mysql.mysql /service/

    6.启动多实例

    [root@db02 /service]# mysqld_safe --defaults-file=/service/3307/my.cnf &
    [root@db02 /service]# mysqld_safe --defaults-file=/service/3308/my.cnf &
    [root@db02 /service]# mysqld_safe --defaults-file=/service/3309/my.cnf &

    7.验证启动

    [root@db02 /service]# netstat -lntp | grep 330
    tcp6       0      0 :::3306                 :::*                    LISTEN      24992/mysqld
    tcp6       0      0 :::3307                 :::*                    LISTEN      32069/mysqld 
    tcp6       0      0 :::3308                 :::*                    LISTEN      32234/mysqld
    tcp6       0      0 :::3309                 :::*                    LISTEN      32394/mysqld

    8.登录验证多实例

    [root@db02 /service]# mysql -uroot -S /service/3307/data/mysql.sock -e 'show variables like "server_id"'
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | server_id     | 7     |
    +---------------+-------+
    
    [root@db02 /service]# mysql -uroot -S /service/3308/data/mysql.sock -e 'show variables like "server_id"'
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | server_id     | 8     |
    +---------------+-------+
    
    [root@db02 /service]# mysql -uroot -S /service/3309/data/mysql.sock -e 'show variables like "server_id"'
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | server_id     | 9     |
    +---------------+-------+

    9.多实例设置密码

    [root@db02 /service]# mysqladmin -uroot password -S /service/3307/data/mysql.sock
    New password: 123
    Confirm new password: 123
    [root@db02 /service]# mysqladmin -uroot password -S /service/3308/data/mysql.sock
    New password: 123
    Confirm new password: 123
    [root@db02 /service]# mysqladmin -uroot password -S /service/3309/data/mysql.sock
    New password: 123
    Confirm new password: 123

    10.配置简单连接数据库多实例

    #1.编写连接数据库文件
    [root@db02 /service]# cat /usr/bin/mysql3307
    mysql -uroot -p123 -S /service/3307/data/mysql.sock
    [root@db02 /service]# cat /usr/bin/mysql3308
    mysql -uroot -p123 -S /service/3308/data/mysql.sock
    [root@db02 /service]# cat /usr/bin/mysql3309
    mysql -uroot -p123 -S /service/3309/data/mysql.sock
    
    #2.授权执行权限
    [root@db02 /service]# chmod +x /usr/bin/mysql*
    
    #3.直接使用命令连接
    [root@db02 /service]# mysql3307
    [root@db02 /service]# mysql3308
    [root@db02 /service]# mysql3309
  • 相关阅读:
    sql中not exists的用法
    jsp中target="_blank"的用法
    jsp 运用 session 登录输出
    jsp留言板
    编写JSP 实现用户登录并判断用户或密码
    jsp打印九九乘法表
    jsp输出当前时间
    jsp输出金字塔
    jsp输出5的阶乘
    jdbc练习3
  • 原文地址:https://www.cnblogs.com/chenlifan/p/13874787.html
Copyright © 2020-2023  润新知