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
centos7 安装mysql 5.7多实例的更多相关文章
- CentOS7安装mysql提示“No package mysql-server available.”
针对centos7安装mysql,提示"No package mysql-server available."错误,解决方法如下: Centos 7 comes with Mari ...
- [CentOs7]安装mysql(2)
摘要 之前安装过一次mysql,最后配置,发现在本地无法连接,重启服务的时候一直卡在那里不动,感觉是安装的过程出问题,最后没办法还是卸载了,然后重新安装一下. [CentOs7]安装mysql Mys ...
- centos7安装mysql
centos7安装mysql 1 查找系统是否安装了myql rpm -q mysql mysql-server1.1如果安装了.就删除 sudo yum -y remove mysql mysql- ...
- centos7安装mysql(yum)
centos7安装mysql(yum) ----安装环境----依赖安装----检查mysql是否已安装----安装----验证是否添加成功----选择要启用的mysql版本----通过Yum安装my ...
- CentOS7安装MySQL的方法之通用二进制格式
CentOS7安装MySQL的方法之通用二进制格式
- CentOS7安装MySQL的方法之RPM包方式
CentOS7安装MySQL的方法之RPM包方式
- centos7安装Mysql爬坑记录
centos7安装Mysql爬坑记录 查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装 ...
- Centos7 安装mysql服务器并开启远程访问功能
大二的暑假,波波老师送了一个华为云的服务器给我作测试用,这是我程序员生涯里第一次以root身份拥有一台真实的云服务器 而之前学习的linux知识在这时也派上了用场,自己的物理机用的是ubuntu系统, ...
- [CentOS7]安装mysql遇到的问题
摘要 在安装mysql的时候,遇到了一些问题,这里列出所遇到的问题. yum list mysql-server 在使用命令yum list mysql-server安装mysql的时候,遇到如图所示 ...
随机推荐
- 每天一个Linux命令(8)cat命令
cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命令. 注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容.因此,一般用more等命 ...
- shiro2
mapper接口:根据用户id查询用户权限的菜单 service接口:根据用户id查询用户权限的菜单 获取用户权限范围的url 思路: 在用户认证时,认证通过,根据用户id从数据库获取用户权限范围的u ...
- WampServer修改MySQL密码的问题
WAMP安装好后,mysql密码是为空的,那么要如何修改呢?其实很简单,通过几条指令就行了,下面我就 一步步来操作. 首先,通过WAMP打开mysql控制台. 提示输入原密码,如果是空,直接按 ...
- delphi各个版本编译开关值
delphi各个版本编译开关值 {$IFDEF VER80} - Delphi 1{$IFDEF VER90} - Delphi 2{$IFDEF VER100} - Delphi 3{$IFDE ...
- Oracle结构控制语句
--if语句 if [判断条件] then --条件满足执行的语句 end if; -- if ...else... if [判断条件] then ----条件满足执行的语句 else --不满足条件 ...
- Spark- 计算每个学科最受欢迎的老师
日志类型 测试数据 http://bigdata.myit.com/zhangsan http://bigdata.myit.com/zhangsan http://bigdata.myit.com/ ...
- MATLAB卷积运算(conv、conv2)解释
来源:https://www.cnblogs.com/hyb221512/p/9276621.html 1.conv(向量卷积运算) 所谓两个向量卷积,说白了就是多项式乘法.比如:p=[1 2 3], ...
- django中使用多个数据库,跨库查询
一.settings配置多个数据库 DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.mysql', 'ENGINE': 'comm ...
- Java_异常_01_org.apache.commons.lang.exception.NestableRuntimeException
异常信息: The type org.apache.commons.lang.exception.NestableRuntimeException cannot be resolved. It is ...
- Python TCP通信网络编程
最近在看廖雪峰老师的基础教程(http://www.liaoxuefeng.com/),今天实现了一下简单Python的Socket的网络编程. 1. Socket网络编程 Socket是网络编程的一 ...