一、 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

centos7 安装mysql 5.7多实例的更多相关文章

  1. CentOS7安装mysql提示“No package mysql-server available.”

    针对centos7安装mysql,提示"No package mysql-server available."错误,解决方法如下: Centos 7 comes with Mari ...

  2. [CentOs7]安装mysql(2)

    摘要 之前安装过一次mysql,最后配置,发现在本地无法连接,重启服务的时候一直卡在那里不动,感觉是安装的过程出问题,最后没办法还是卸载了,然后重新安装一下. [CentOs7]安装mysql Mys ...

  3. centos7安装mysql

    centos7安装mysql 1 查找系统是否安装了myql rpm -q mysql mysql-server1.1如果安装了.就删除 sudo yum -y remove mysql mysql- ...

  4. centos7安装mysql(yum)

    centos7安装mysql(yum) ----安装环境----依赖安装----检查mysql是否已安装----安装----验证是否添加成功----选择要启用的mysql版本----通过Yum安装my ...

  5. CentOS7安装MySQL的方法之通用二进制格式

      CentOS7安装MySQL的方法之通用二进制格式          

  6. CentOS7安装MySQL的方法之RPM包方式

        CentOS7安装MySQL的方法之RPM包方式        

  7. centos7安装Mysql爬坑记录

    centos7安装Mysql爬坑记录   查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装 ...

  8. Centos7 安装mysql服务器并开启远程访问功能

    大二的暑假,波波老师送了一个华为云的服务器给我作测试用,这是我程序员生涯里第一次以root身份拥有一台真实的云服务器 而之前学习的linux知识在这时也派上了用场,自己的物理机用的是ubuntu系统, ...

  9. [CentOS7]安装mysql遇到的问题

    摘要 在安装mysql的时候,遇到了一些问题,这里列出所遇到的问题. yum list mysql-server 在使用命令yum list mysql-server安装mysql的时候,遇到如图所示 ...

随机推荐

  1. client = new DatagramSocket(LocalPort) 是说端口已经被占用的意思

    ok 现在遇到一个问题,client = new DatagramSocket(LocalPort) 是说端口已经被占用的意思 ref:!!https://community.oracle.com/t ...

  2. 一张图学习vim常用命令

    一张图学习vim常用命令

  3. PIG执行MR时报Connection refused错误

    原因是jobhistory没有启动,其启动脚本位于hadoop/sbin目录下 启动命令如下 mr-jobhistory-daemon.sh start historyserver

  4. Oracle数据库体系结构(3)数据库进程

    一.Oracle进程概述 在oracle中进程分为用户进程(User Process).服务器进程(server process)和后天进程3种. 1.用户进程:当用户连接到数据库执行一个应用程序是, ...

  5. 3D卡片折叠动画自定义下拉框

    在线演示 本地下载

  6. hihocoder 第五十二周 高斯消元·二【高斯消元解异或方程 难点【模板】】

    题目地址:http://hihocoder.com/contest/hiho57/problem/1 输入 第1..5行:1个长度为6的字符串,表示该行的格子状态,1表示该格子是亮着的,0表示该格子是 ...

  7. servlet实现验证码

    (博客内容来自:jsp使用servlet实现验证码,以下内容只是不才对原博客的摘抄以便以后翻阅使用) 一.原理: 验证码作为一个图片,在页面中为“画”出来的,它是如何画出来的呢? <生成图片&g ...

  8. docker网络模型

    docker run -it --rm --net none --name test centos:newer /bin/bash --net none的作用是创建一个封闭的容器,容器只有lo接口,只 ...

  9. MySQL查询in操作 查询结果按in集合顺序显示

    偶尔看到的...或许有人会注意过,但我以前真不知道 SQL: select * from table where id IN (3,6,9,1,2,5,8,7); 这样的情况取出来后,其实,id还是按 ...

  10. 英语发音规则---发/i:/的字母及字母组合

    英语发音规则---发/i:/的字母及字母组合 一.总结 一句话总结: 1.字母组合ee发/iː/? bee beef see agree week meeting feel sweet free be ...