• 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关闭的, 因为读取速度是非常慢的!!!!

  • 相关阅读:
    win10没有新建文件夹
    js暂停的函数
    Mini ORM——PetaPoco笔记
    阻止网页内部滚动条mousewheel事件冒泡
    setTimeout调用带参数的函数的方法
    spring入门--Spring框架底层原理
    spring入门——applicationContext与BeanFactory的区别
    mybatis的Sql语句打印
    Sql语句中IN和exists的区别及应用
    Jenkins学习
  • 原文地址:https://www.cnblogs.com/gukai/p/10839804.html
Copyright © 2020-2023  润新知