• centos7 安装mysql 5.7多实例


    一、 Mysql多实例即一台服务器上运行多个Mysql服务进程 ,开启不同的服务端口,通过不同的socket 监听不同的服务端口来提供各自的服务。

    二、 Mysql多例有以下几个特点:

      1、  有效利用服务器资源:通过多实例地配置,可以将服务器剩余的资源充分利用起来。

      2、  资源互相抢占问题:资源互相抢占问题,当某个服务实例服务并发很高时或者开启慢查询时,会消耗更多的内存、CPU、磁盘IO资源,导致服务器上的其他实例提供服务的质量下降。

      3、  节约资源。

    三、 安装前准备

      1、  服务器版本:CentOS 7

      2、  将/etc/selinux/config里的SELINUX设置成:disabled

      3、  下载mysql: https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

    四、 安装与配置mysql多例

      1、  解压mysql

        a、解压mysq:tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

        b、移动mysql:sudo mv mysql-5.7.19-linux-glibc2.12-x86_64 /usr/local/mysql

      2、  创建mysql实例用户及文件

        a、sudo useradd mysql -r -s /sbin/nologin          

        b、sudo mkdir -p /usr/local/mysql/mysql_files          //数据导入导出目录

        c、 创建多实例数据目录:sudo mkdir -p /data/mysql_data{1..3}

        d、   修改mysql目录的属组及用户:sudo chown root.mysql -R /usr/local/mysql

        e、   修改专用目录的属主及属组:sudo chown mysql.mysql -R /usr/local/mysql/mysql_files  /data/mysql_data{1..3}

      3、  配置Mysql的配置文件/etc/my.cnf,内容如下:

        [mysqld_multi]

        mysqld = /usr/local/mysql/bin/mysqld

        mysqladmin = /usr/local/mysql/bin/mysqladmin

        log = /tmp/mysql_multi.log

        [mysqld1]

        datadir = /data/mysql_data1       //设置数据目录

        socket = /tmp/mysql.sock1         //设置sock文件存放路径

        port = 3306                      //设置监听开放端口 

        user = mysql                           //设置运行用户

        performance_schema = off          //关闭监控

        innodb_buffer_pool_size = 32M         //设置innodb 缓存大小

        bind_address = 0.0.0.0                  //设置监听IP地址

        skip-name-resolve = 0                 //关闭DNS反向解析

        [mysqld2]

        datadir = /data/mysql_data2

        socket = /tmp/mysql.sock2

        port = 3307

        user = mysql

        performance_schema = off

        innodb_buffer_pool_size = 32M

        bind_address = 0.0.0.0

        skip-name-resolve = 0

        [mysqld3]

        datadir = /data/mysql_data3

        socket = /tmp/mysql.sock3

        port = 3308

        user = mysql

        performance_schema = off

        innodb_buffer_pool_size = 32M

        bind_address = 0.0.0.0

        skip-name-resolve = 0

      4、  初始化各个实例:初始化完后会在日志中生成密码,记得保存,一会要用。

        a、sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data1

        b、   /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data2

        c、 /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data3

      

      5、  开启各实例的SSL连接

        a、sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data1

        b、   sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data2

        c、 sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data3

      

      6、  复制多实例脚本到服务管理目录下

        a、sudo cp /usr/local/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi

      7、  给予脚本可执行权限:sudo chmod +x /etc/init.d/mysqld_multi

      8、  加入service服务管理: sudo chkconfig –add mysqld_multi

      9、  添加环境变量

        a、在文件最后面添加内容:sudo vim /etc/profile

          ## SETUP MYSQL’S PATH

          export MYSQL_HOME=/usr/local/mysql

          export PATH=${MYSQL_HOME}/bin:$PATH

        b、   使修改的配置文件生效:source /etc/profile

    五、 测试实例

      1、  查看多个实例状态:mysqld_multi report

       

      2、  启动各个实例 : sudo mysqld_multi start

      3、  查看实例的监听端口:sudo ss -tulpn|grep mysqld

       

      4、  连接实例1:

        a、sudo mysql -S /tmp/mysql.sock1 -p’ Akgl?lkJl8l2’

        b、   进去后修改root密码: set password=123456;

        c、 使修改生效:flush privileges;

       

      5、  另外两个实例的操作方法与实例1一致,不再赘述。

    PS:此文参考自 http://www.linuxidc.com/Linux/2017-07/145343.htm

  • 相关阅读:
    vue简介
    npm是什么
    杨辉三角(打印一个等腰、直角三角形)
    JS实现金额转换(将输入的阿拉伯数字)转换成中文
    Http请求处理流程
    FusionCharts的使用方法
    几种流行的AJAX框架对比:Jquery,Mootools,Dojo,ExtJs,Dwr
    Ubuntu 编译安装PHP
    Ubuntu/Deepin 添加桌面图标
    shell 脚本 ${1:-"false"}的含义
  • 原文地址:https://www.cnblogs.com/jefflee168/p/7237112.html
Copyright © 2020-2023  润新知