• mysql 如何在虚拟机中创建多个实例并启动



    多实例:
    1)多个进程
    2)多个线程
    3)多个预分配的内存结构


    多套配置文件:
    多个端口
    多套数据目录(--datadir=/usr/local/mysql/data)
    多个socket文件

    四.mysql的多实例

    1.创建多个配置文件目录
    [root@db01 ~]# mkdir -p /data/330{7..9}

    [root@db01 ~]# tree /data/
    /data/
    ├── 3307
    ├── 3308
    └── 3309

    [root@db01 ~]# ll /data/
    total 0
    drwxr-xr-x. 2 root root 6 May 9 09:59 3307
    drwxr-xr-x. 2 root root 6 May 9 09:59 3308
    drwxr-xr-x. 2 root root 6 May 9 09:59 3309

    2.编辑多个配置文件
    [root@db01 ~]# vim /data/3307/my.cnf
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/data/3307/data
    port=3307
    socket=/data/3307/mysql.sock
    server-id=7
    log_error=/data/3307/data/mysql.err
    pid=/data/3307/data/mysql.pid

    ========================================

    [root@db01 ~]# vim /data/3308/my.cnf
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/data/3308/data
    port=3308
    socket=/data/3308/mysql.sock
    server-id=8
    log_error=/data/3308/data/mysql.err
    pid=/data/3308/data/mysql.pid

    =========================================

    [root@db01 ~]# vim /data/3309/my.cnf
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/data/3309/data
    port=3309
    socket=/data/3309/mysql.sock
    server-id=9
    log_error=/data/3309/data/mysql.err
    pid=/data/3309/data/mysql.pid


    2.进入初始化目录
    [root@db01 ~]# cd /usr/local/mysql/scripts/

    3.初始化多套数据目录
    [root@db01 scripts]# ./mysql_install_db --defaults-file=/data/3307/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data
    [root@db01 scripts]# ./mysql_install_db --defaults-file=/data/3308/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/data
    [root@db01 scripts]# ./mysql_install_db --defaults-file=/data/3309/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3309/data

    [root@db01 scripts]# ll /data/330*
    /data/3307:
    total 4
    drwx------. 5 mysql mysql 127 May 9 10:11 data
    -rw-r--r--. 1 root root 175 May 9 10:05 my.cnf

    /data/3308:
    total 4
    drwx------. 5 mysql mysql 127 May 9 10:12 data
    -rw-r--r--. 1 root root 175 May 9 10:06 my.cnf

    /data/3309:
    total 4
    drwx------. 5 mysql mysql 127 May 9 10:12 data
    -rw-r--r--. 1 root root 175 May 9 10:07 my.cnf


    4.授权
    [root@db01 scripts]# chown -R mysql.mysql /data/330*

    5.启动mysql
    [root@db01 scripts]# mysqld_safe --defaults-file=/data/3307/my.cnf &
    [root@db01 scripts]# mysqld_safe --defaults-file=/data/3308/my.cnf &
    [root@db01 scripts]# mysqld_safe --defaults-file=/data/3309/my.cnf &

    6.检查端口
    [root@db01 scripts]# netstat -lntup|grep 330
    tcp6 0 0 :::3306 :::* LISTEN 41108/mysqld
    tcp6 0 0 :::3307 :::* LISTEN 42206/mysqld
    tcp6 0 0 :::3308 :::* LISTEN 42378/mysqld
    tcp6 0 0 :::3309 :::* LISTEN 42550/mysqld

    7.检查进程
    [root@db01 scripts]# ps -ef|grep mysqld
    root 40999 1 0 08:54 pts/0 00:00:00 /bin/sh /usr/local/mysql-5.6.40/bin/mysqld_safe --datadir=/usr/local/mysql-5.6.40/data --pid-file=/usr/local/mysql-5.6.40/data/db01.pid
    mysql 41108 40999 0 08:54 pts/0 00:00:03 /usr/local/mysql-5.6.40/bin/mysqld --basedir=/usr/local/mysql-5.6.40 --datadir=/usr/local/mysql-5.6.40/data --plugin-dir=/usr/local/mysql-5.6.40/lib/plugin --user=mysql --log-error=db01.err --pid-file=/usr/local/mysql-5.6.40/data/db01.pid
    root 42056 7747 0 10:18 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf
    mysql 42206 42056 0 10:18 pts/0 00:00: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 --user=mysql --log-error=/data/3307/data/mysql.err --pid-file=db01.pid --socket=/data/3307/mysql.sock --port=3307
    root 42228 7747 0 10:18 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3308/my.cnf
    mysql 42378 42228 4 10:18 pts/0 00:00:03 /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 --user=mysql --log-error=/data/3308/data/mysql.err --pid-file=db01.pid --socket=/data/3308/mysql.sock --port=3308
    root 42379 7747 0 10:18 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3309/my.cnf
    mysql 42550 42379 2 10:18 pts/0 00:00:02 /usr/local/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf --basedir=/usr/local/mysql --datadir=/data/3309/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/3309/data/mysql.err --pid-file=db01.pid --socket=/data/3309/mysql.sock --port=3309
    root 42577 7747 0 10:20 pts/0 00:00:00 grep --color=auto mysqld


    8.多实例设置密码
    [root@db01 ~]# mysqladmin -uroot -p -S /data/3307/mysql.sock password 3307
    [root@db01 ~]# mysqladmin -uroot -p -S /data/3308/mysql.sock password 3308
    [root@db01 ~]# mysqladmin -uroot -p -S /data/3309/mysql.sock password 3309

    9.多实例连接
    [root@db01 ~]# mysql -uroot -p3307 -S /data/3307/mysql.sock
    [root@db01 ~]# mysql -uroot -p3308 -S /data/3308/mysql.sock
    [root@db01 ~]# mysql -uroot -p3309 -S /data/3309/mysql.sock

    10.连接技巧
    [root@db01 ~]# vim /usr/local/mysql/bin/mysql3307
    mysql -uroot -p3307 -S /data/3307/mysql.sock

    [root@db01 ~]# vim /usr/local/mysql/bin/mysql3308
    mysql -uroot -p3308 -S /data/3308/mysql.sock

    [root@db01 ~]# vim /usr/local/mysql/bin/mysql3309
    mysql -uroot -p3309 -S /data/3309/mysql.sock

    [root@db01 ~]# chmod +x /usr/local/mysql/bin/mysql330*

    11.停止mysql多实例
    [root@db01 ~]# mysqladmin -uroot -p3307 -S /data/3307/mysql.sock shutdown
    [root@db01 ~]# mysqladmin -uroot -p3308 -S /data/3308/mysql.sock shutdown
    [root@db01 ~]# mysqladmin -uroot -p3309 -S /data/3309/mysql.sock shutdown

    #重要 vim编辑器内修改数字
    :%s#7#8#g
    #重要 vim编辑器内修改数字

    ###重点! 如果在物理机上建议开启swap 虚拟内存, 但是在阿里云上或虚拟机上都是吧swap关闭的, 因为读取速度是非常慢的!!!!

  • 相关阅读:
    There is an overlap in the region chain修复
    There is an overlap in the region chain
    region xx not deployed on any region server
    python 中的re模块,正则表达式
    TCP粘包问题解析与解决
    yield from
    Git push提交时报错Permission denied(publickey)...Please make sure you have the correct access rights and the repository exists.
    mysql 中Varchar 与char的区别
    Mysql 字符集及排序规则
    请实现一个装饰器,限制该函数被调用的频率,如10秒一次
  • 原文地址:https://www.cnblogs.com/gukai/p/10839804.html
Copyright © 2020-2023  润新知