MySQL5.7开多实例指导
一、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_mysqllog_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开多实例指导的更多相关文章
- mysql5.6.40单实例安装二进制快捷安装
mysql5.6.40单实例安装二进制快捷安装 近期因不同环境需要不同版本的mysql实例,故为了方便操作,特此记录下来,方便自己查找. # 1.1.Centos最小化安装推荐常用依赖包 yum cl ...
- CentOS7.2安装mysql-5.7.19多实例
安装多实例之前首先需要先安装mysql,这里就不介绍如何安装mysql了,参考前面的博客:https://www.cnblogs.com/hei-ma/p/9505509.html 安装多实例之前需要 ...
- Openlayers3 WebGis二次开发包实例
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs& ...
- WebGis二次开发包实例
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs& ...
- mysql5.7.20多实例编译安装
好记性不如烂笔头! MySQL多实例 实际上就是在同一台服务器上运行多个mysql服务进程. 相同点:公用同一套MySQL安装程序. 不同点:使用不同的配置文件(也可以相同).启动程序(也可以相同). ...
- (转)mysql5.6.7多实例安装、配置的详细讲解分析及shell启动脚本的编写
一.mysql安装 1.下载mysql数据库源码包: wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.27.tar.gz 2.安装mys ...
- mysql-5.1.73多实例安装启动
一.源码包下载:http://download.softagency.net/MySQL/Downloads/MySQL-5.1/ 二.编译安装 groupadd mysql useradd -r - ...
- Mysql-5.5版本搭建实例的部分库的从库
由于业务需要在Mysql实例中创建部分库的从库,已有的Mysql实例的版本是mysql-5.5.49,是一个非常老的版本. 本文档涉及到服务器中运行多实例和构建实例中部分库的从库. 服务器 mysql ...
- mysql5.7单机多实例安装
基于之前的mysql5.7单实例安装 修改/etc/my.cnf文件如下(这里配置4个实例,可自行修改数目) # # 多实例配置文件,可以mysqld_multi --example 查看例子 # [ ...
随机推荐
- 记一次<iframe>的使用
将jsp拆分frame框架,因为采用了第一种方式,一直在考虑用jquery异步请求获取数据,总是但不到效果, 终于在js写吐的时候选择了第二种方式. //参考网上的使用,大多是下面这个样子,如果涉及静 ...
- Python-数据类型1
在Python中常见的数据类型有:整数(int).字符串(str).小数/浮点数(float).列表.元组.字典和布尔类型等,下面会进行一一介绍. 整数和小数,不用多介绍相信大家都有所了解,字符串是用 ...
- EF的简单认识
EF的简单认识 EF简介 EntityFramwork是微软提供的一款ORM框架(Object Relational Mapping),实体映射模型,它的底层是ADO.NET的机制,使用EF将省去 ...
- JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建
本篇博客就完整的来聊一下如何在Eclipse中创建的Maven Project.本篇博客是JavaEE开发的开篇,也是基础.本篇博客的内容干货还是比较多的,而且比较实用,并且都是采用目前最新版本的工具 ...
- JavaScript 异步编程的前世今生(上)
前言 提到 JavaScript 异步编程,很多小伙伴都很迷茫,本人花费大约一周的业余时间来对 JS 异步做一个完整的总结,和各位同学共勉共进步! 目录 part1 基础部分 什么是异步 part2 ...
- [Swift]LeetCode169. 求众数 | Majority Element
Given an array of size n, find the majority element. The majority element is the element that appear ...
- [Swift]LeetCode403. 青蛙过河 | Frog Jump
A frog is crossing a river. The river is divided into x units and at each unit there may or may not ...
- 【web.xml】项目从web.xml开始
前言 依自己目前的所闻所见,每个项目的WEB-INF下都会带有一个web.xml配置文件.当启动项目时,web容器(tomcat)会首先去读取web.xml中的内容,读取加载完成后才算完成了项目的启动 ...
- python网络-多线程(22)
一.什么是线程 线程(英语:thread)是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.同一进程中的多条线程将共享该进程中的全部系统资源,一个进程可以有很多线程,每 ...
- Spring Data Jpa接口简介
Repository接口 public interface Repository<T, ID> {....} 提供了按方法名称的查询方式: 提供了@Query的查询方式 可能遇到的错误: ...