一、mysql多实例原理

  在一台服务器上,mysql服务开启多个不同的端口,运行多个服务进程。他们通过不同的 socket来监听不同的端口互不干扰地运行。

二、开发环境

  ubuntu16.04.5LTS/i5/8G/500G/64位/mysql5.7.23/php7/apache2

三、配置步骤

1、创建mysql实例数据存储目录

cd /var/lib/

mkdir 3308_mysql  

chown -R mysql:mysql 3308_mysql    //修改权限

2、创建配置文件

(我的环境中,mysql配置主要是/etc/mysql/my.cnf,其中又相应的加载conf.d和mysql.conf.d文件夹中的文件。我们直接copy,然后修改部分重要内容即可)

cd /etc/mysql/

cp -r conf.d conf3308.d

cp my.cnf my3308.cnf

cp -r mysql.conf.d mysql3308.conf.d

vi my3308.cnf

修改内容如下

!includedir /etc/mysql/conf3308.d/
!includedir /etc/mysql/mysql3308.conf.d/

cd mysql3308.conf.d

vi mysqld.cnf

修改内容如下:

[mysqld_safe]
socket        = /var/lib/3308_mysql/mysqldsafe.sock
#nice        = 0

[mysqld]
#
# * Basic Settings
#
user        = mysql
pid-file    = /var/lib/3308_mysql/mysqld.pid
socket        = /var/lib/3308_mysql/mysqld.sock
port        = 3308
basedir        = /usr
datadir        = /var/lib/3308_mysql

log_error = /var/lib/3308_mysql/error.log

3、添加读写权限apparmor

vi /etc/apparmor.d/usr.sbin.mysqld

在下面添加:

/var/lib/3308_mysql/ r,
/var/lib/3308_mysql/** rwk,

让apparmor重新加载配置文件

service apparmor reload

4、启动实例

这里得提醒大家的是,mysql_install_db初始化的方法已经不能在5.7版本使用了,亲测了N种方法都失败了,请使用以下命令。

mysqld --initialize-insecure --datadir=/var/lib/3308_mysql --user=mysql  //初始化,其中--initialize-insecure 为创建时不带密码

mysqld_safe --defaults-file=/etc/mysql/my3308.cnf  //启动

执行 ctrl + z //让实例后台运行

此时我们可以看数据库运行情况

netstat -anp | grep mysql

会看到

成功!监听3308端口

5、设置实例密码

mysql -uroot -p -S /var/lib/3308_mysql/mysqldsafe.sock -P 3308

Enter password:   //直接enter,因为我们初始化时--initialize-insecure

mysql> use mysql

mysql> UPDATE user SET authentication_string= password ('123456') WHERE User='root';

mysql> exit

//重新启动

mysqladmin -uroot -S /var/lib/3308_mysql/mysqldsafe.sock shutdown  

mysqld_safe --defaults-file=/etc/mysql/my3308.cnf

ctrl + z

mysql -uroot -p -S /var/lib/3308_mysql/mysqldsafe.sock -P 3308

Enter password:   //此时需要输入刚才设置的密码

四、建库测试

我们在3308中创建了库db3308,我们去3306库中并没发现此库

反过来我们在3306的数据库操作对3308也没有影响。

我们发现,各个库独立运行,互不干扰。

五、开更多实例

重复配置步骤即可

MySQL5.7开多实例指导的更多相关文章

  1. mysql5.6.40单实例安装二进制快捷安装

    mysql5.6.40单实例安装二进制快捷安装 近期因不同环境需要不同版本的mysql实例,故为了方便操作,特此记录下来,方便自己查找. # 1.1.Centos最小化安装推荐常用依赖包 yum cl ...

  2. CentOS7.2安装mysql-5.7.19多实例

    安装多实例之前首先需要先安装mysql,这里就不介绍如何安装mysql了,参考前面的博客:https://www.cnblogs.com/hei-ma/p/9505509.html 安装多实例之前需要 ...

  3. Openlayers3 WebGis二次开发包实例

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs& ...

  4. WebGis二次开发包实例

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs& ...

  5. mysql5.7.20多实例编译安装

    好记性不如烂笔头! MySQL多实例 实际上就是在同一台服务器上运行多个mysql服务进程. 相同点:公用同一套MySQL安装程序. 不同点:使用不同的配置文件(也可以相同).启动程序(也可以相同). ...

  6. (转)mysql5.6.7多实例安装、配置的详细讲解分析及shell启动脚本的编写

    一.mysql安装 1.下载mysql数据库源码包: wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.27.tar.gz 2.安装mys ...

  7. mysql-5.1.73多实例安装启动

    一.源码包下载:http://download.softagency.net/MySQL/Downloads/MySQL-5.1/ 二.编译安装 groupadd mysql useradd -r - ...

  8. Mysql-5.5版本搭建实例的部分库的从库

    由于业务需要在Mysql实例中创建部分库的从库,已有的Mysql实例的版本是mysql-5.5.49,是一个非常老的版本. 本文档涉及到服务器中运行多实例和构建实例中部分库的从库. 服务器 mysql ...

  9. mysql5.7单机多实例安装

    基于之前的mysql5.7单实例安装 修改/etc/my.cnf文件如下(这里配置4个实例,可自行修改数目) # # 多实例配置文件,可以mysqld_multi --example 查看例子 # [ ...

随机推荐

  1. 权限系统设计-day02

    练习中的问题: 1,<s:url action="employee_input" />这个标签用来让struts自动生成请求的路径,struts生成的路径是一个全路径, ...

  2. AI-2.梯度下降算法

    上节定义了神经网络中几个重要的常见的函数,最后提到的损失函数的目的就是求得一组合适的w.b 先看下损失函数的曲线图,如下 即目的就是求得最低点对应的一组w.b,而本节要讲的梯度下降算法就是会一步一步地 ...

  3. PuppeteerSharp+AngleSharp的爬虫实战之汽车之家数据抓取

    参考了DotNetSpider示例, 感觉DotNetSpider太重了,它是一个比较完整的爬虫框架. 对比了以下各种无头浏览器,最终采用PuppeteerSharp+AngleSharp写一个爬虫示 ...

  4. 基本类型数据转换(int,char,byte)

    public class DataUtil { public static void main(String[] args) { int a = 8; int value = charToInt(by ...

  5. laytpl模板——怎么使用ajax与数据交互

    第一次在项目中用laytpl模板,下面是一些使用过程中的探索,希望对小伙伴们有所帮助. 注:第一次使用这个模板的小伙伴建议先去看看官网 laytpl <script type="tex ...

  6. Redis安装及使用详解

    推荐在Linux系统上安装,这里我采用CentOS6: Redis采用3.0.0版本,官网下载即可 由于Redis是C语言编写,需要安装gcc(部分Linux自带gcc) yum install gc ...

  7. [Swift]LeetCode363. 矩形区域不超过 K 的最大数值和 | Max Sum of Rectangle No Larger Than K

    Given a non-empty 2D matrix matrix and an integer k, find the max sum of a rectangle in the matrix s ...

  8. [Swift]LeetCode407. 接雨水 II | Trapping Rain Water II

    Given an m x n matrix of positive integers representing the height of each unit cell in a 2D elevati ...

  9. js中对于逗号的运算符!

    先展示一个例子! var f = (function f() { return '1'; } , function g(){ return 1; } )(); console.log(typeof f ...

  10. JSONP和CORS两种跨域方式的优缺点及使用方法原理介绍

    随着软件开发分工趋于精细,前后端开发分离成为趋势,前端同事负责前端页面的展示及页面逻辑处理,服务端同事负责业务逻辑处理同时通过API为前端提供数据也为前端提供数据的持久化能力,考虑到前后端同事开发工具 ...