CentOS 7搭建多实例MySQL8的详细教程(想要几个搞几个)

起因

最近项目上开始重构,可能会用到主从加读写分离的情况,就想先在本地搭一个出来试试效果,结果百度一搜出来一大堆,然而自己去踩坑的没几个,绝大多数都是去抄的别人的内容,关键是实际应用中还会出错,浏览器开了接近二十个标签页,试了好几个都有问题,完全用不了,时间浪费了不说,还会让你很憋屈,所以就自己搞。

一、准备

1、首先检查并清理系统中存在的mysql相关文件

# 检查系统中是否存在Mysql的文件
 find / -name mysql
 ​
 # 删除存在mysql的文件或文件夹
 rm -rf /usr/lib64/mysql/
 ​
 # 检查是否存在mysql的相关依赖
 rpm -qa|grep mysql
 ​
 # 卸载mysql的依赖
 rpm -e mysql-.....

2、下载对应版本的mysql安装文件

因为我使用的是CentOS 7 64位,所以在MySQL官网中选择如下图的操作系统,然后选择tar包进行下载。

在这儿说明下,为什么我要使用tar包进行安装,而不是使用网上普遍的一个正常安装,另一个用rpm安装的方法,因为如果第一个使用yum正常安装,第二个使用本地安装,那么无法指定安装路径,无法将两个mysql放在一起进行系统性管理,所以我在这儿使用tar包来安装多个实例,并且放在同一目录下方便管理与配置。

# 在下载前先创建一个mysql用户,为什么要创建MySQL用户?
因为解压出来的mysql文件没有任何的属组,以及为了避免在配置、启动时MySQL不能读取某些文件
,所以建议使用mysql用户来运行mysql
 adduser mysql
 # 设置密码
 passwd mysql # 接下来输入两次密码
 ​
 # 切换用户
 su mysql
 ​
 # 下载Mysql的tar包
 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-el7-x86_64.tar.gz
 ​
 # 解压文件并重命名文件夹为 mysql_01
 tar xf mysql-8.0.20-el7-x86_64.tar.gz ./mysql_01
 ​
 # 复制一份mysql_01并重命名为mysql_02
 cp -r ./mysql_01 ./mysql_02/
 ​
 # 切换到root用户,更改两个mysql的数组为mysql用户,然后再切换回mysql用户
 exit
 chown -R mysql:mysql /home/mysql/mysql_01/ /home/mysql/mysql_02/
 su mysql

二、修改配置

接下来就是对MySQL进行配置,两个MySQL的配置其实是差不多的,只是说路径不同而已,在这儿我就只展示mysql_01的配置,mysql_02则将相应的路径替换成自己的路径即可。

1、自定义配置my.cnf

# 切换到mysql_01路径下
 cd ./mysql_01
 ​
 # 创建配置文件my.cnf,直接使用vim编辑,保存后即可。其中###表示为必须项,#表示为可选项
 vim my.cnf
 ----------以下是文件内容-------------
 [mysqld]
 ### 端口号
 port=10085  

 ### 安装目录
 basedir=/home/mysql/mysql_01/ 

 ### 数据存放路径
 datadir=/home/mysql/mysql_01/data/ 

 ### 会话文件目录
 socket=/home/mysql/mysql_01/mysql.sock

 # 允许连接失败的最大次数
 max_connect_errors=10  

 # 服务端的字符集编码
 character-set-server=utf8 

 # 默认存储引擎
 default-storage-engine=INNODB 

 # 默认用户
 user=mysql  

 # 开启慢查询
 slow_query_log=on  

 # 慢查询日志文件目录
 slow_query_log_file=/home/mysql/mysql_01/slow-query.log [client]
 ### 连接服务端使用的端口号
 port=10085 ​ ### 会话文件
socket=/home/mysql/mysql_01/mysql.sock
 # 默认字符集编码
 default-character-set=utf8 ---------------文件内容结束-------------------- ​
 # 在上面的配置中可以看到datadir项中存在data文件夹,而mysql_01下并没有,
因此需要创建data文件夹 mkdir data

2、修改自带的默认配置

接下来就需要修改mysql的默认配置信息

# 修改文件中的默认配置信息
 vim ./support-files/mysql.server
 # 将文件中的所有有关basedir和datadir的配置全部修改为当前的路径

如下图

以及修改该文件中加载的MySQL配置文件路径,修改为刚才创建的my.cnf文件,如下图,修改完成后,保存退出。

同样也需要修改support-files下的另一个文件

# 修改support-files文件夹下的mysqld_multi.server文件
 vim ./support-files/mysqld_multi.server
 ​
 #还是修改basedir和datadir两项属性,如下图所示

三、初始化安装及启动服务

1、初始化安装

# 切换到mysql_01的根目录
 cd /home/mysql/mysql_01/
 ​
 # 初始化安装 --defaults-file表示指定初始化的配置文件
--console表示将初始化信息打印在控制台
 ./bin/mysqld --defaults-file=/home/mysql/mysql_01/my.cnf --initialize
 --console --user=mysql
 ​
 # 初始化成功后,会在控制台中打印出初始化密码,大致格式如下
 root@localhost: fa356fgss,

2、启动服务

# 后台启动当前mysql_01的mysql服务,还是需要去指定配置文件,因为在配置文件中我们设置了一个socket参数,
只有按照这个配置文件去启动,才会按照socket配置的路径去生成,否则会自动生成在/tmp/mysql.sock,
如果mysql_02也是这么生成,则会形成覆盖,在连接时造成只能连接一个服务,甚至报错。
 ./bin/mysqld_safe --defaults-file=./my.cnf &
 ​
 # 使用命令查看mysql服务是否启动,如下图
 netstat -nultp|grep 10085

四、连接数据库与修改密码

# 通过上面可以看到mysql服务已经启动,那么就可以连接MySQL了
 ./bin/mysql --socket=./mysql.sock -uroot -p # 输入初始密码
 ​
 # 修改MySQL登录密码,这儿我的修改为 root,注意末尾的结束符分号
 alter user root@localhost identified by "root";

同样配置之后,启动mysql_02,效果如下

以上就是MySQL_01的配置,同样的MySQL_02和这个一致,只需要将对应的目录修改为自己的文件路径即可。当安装上多个实例之后,就可以进行主从复制、读写分离等相关配置。

总结

到此这篇关于CentOS 7搭建多实例MySQL8(想要几个搞几个)的文章就介绍到这了,更多相关CentOS 7搭建多实例MySQL8内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • CentOS6.5 上部署 MySQL5.7.17 二进制安装以及多实例配置

    1.建用户.下载.解压 groupadd mysql useradd -r -g mysql mysql wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz tar xvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ ln -sv /usr/local/mysql-5.7.17-linux-gli

  • centos7环境下创建mysql5.6多实例的方法详解

    本文实例讲述了centos7环境下创建mysql5.6多实例的方法.分享给大家供大家参考,具体如下: 一.mysql安装目录说明 mysql5.6以二进制安装包安装在/data/mysql56下 数据目录为/data/mysql56/data下 配置文件为/etc/my.cnf下 二.多实例目录说明 /mysql-instance          |-- 3308                   |-- data  #3308实例数据目录          |-- 3309        

  • CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用

    RabbitMQ简介 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..NET.Java.JMS.C.PHP.ActionScript.XMPP.STOMP等,支持AJAX.用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗. AMQP,即Advanced message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解

  • CentOS7.5使用mysql_multi方式安装MySQL5.7.28多实例(详解)

    因使用源码安装的MySQL5.7.28多实例,在导入数据库时会出现问题,所以重新研究使用mysql_multi的方法来管理多实例,经过测试环境验证之后,在各方面使用上特别在备份还原上,没有报MySQL5.7.28多实例的问题,踩了不少坑,这里我将我的部署过程分享下,如果在哪里出问题的,还请多多指正与指导,谢谢!! 参考文章:Centos7.5安装mysql5.7.24二进制包方式部署 https://www.jb51.net/article/151867.htm 本从就直接从2.7章节开始安装m

  • CentOS 7搭建多实例MySQL8的详细教程(想要几个搞几个)

    起因 最近项目上开始重构,可能会用到主从加读写分离的情况,就想先在本地搭一个出来试试效果,结果百度一搜出来一大堆,然而自己去踩坑的没几个,绝大多数都是去抄的别人的内容,关键是实际应用中还会出错,浏览器开了接近二十个标签页,试了好几个都有问题,完全用不了,时间浪费了不说,还会让你很憋屈,所以就自己搞. 一.准备 1.首先检查并清理系统中存在的mysql相关文件 # 检查系统中是否存在Mysql的文件 find / -name mysql ​ # 删除存在mysql的文件或文件夹 rm -rf /u

  • 搭建vscode+vue环境的详细教程

    一.安装vue.js 1.简介 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用. Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. Vue.js是一个MVVM模式的框架,如果读者有angul

  • 在centOS 7安装mysql 5.7的详细教程

    参考官方文档:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 首先创建一个repo文件 vim /etc/yum.repos.d/mysql-community.repo 然后根据官方文档写入: 比如在centOS 7安装mysql 5.7 [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-

  • CentOS下宝塔部署Django项目的详细教程

    基础环境 装好宝塔服务 宝塔里装好[Python项目管理器] 宝塔里装好[Nginx] 把Django项目代码发到服务器 把代码放到服务器上有两种方法: 方法一:服务器上安装Git,通过Git Clone代码到服务器上 方法二:通过宝塔的FTP工具把代码上传上去 注意: 在目录:/www/wwwroot/下新建一个文件夹, 把代码需要放到新建的目录中 创建Python(Django)项目 现在我们开始创建 python 项目.打开首页的 python 项目管理器,点击 添加项目.填充数据: *

  • CentOS中安装python3.8.2的详细教程

    最新的CentOS8已经内置了Python2和Python3,出入Python2和Python3两个命令可以分别进入Python2和Python3. CentOS8内置的Python3版本为3.6.8,我们需要将它升级到3.8.2 首先下载Python3.8.2的安装包 wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz 下载好安装包后,下载python3.8所需要的环境依赖包 yum install gcc openssl

  • idea搭建ssh框架的超详细教程

    目录 一.创建项目 1.new->project出现如下 2.构建目录结构 二.Struts2 1.首先引入struts2依赖 2.WEB-INF下web.xml文件配置 3.在resources下添加struts.xml文件 4.在action包下创建TestAction类,为了测试在webapp下新建了test.jsp页面 5.部署 6.启动测试 三.Spring 1.首先引入spring相关依赖 2.在web.xml中添加listener,并在resources下新建spring,xml文

  • linux上搭建私有Git服务器的详细教程

    1.服务器搭建 远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改.GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用. 搭建Git服务器需要准备一台运行Linux的机器,在此我们使用CentOS.以下为安装步骤: 1.下载git-2.22.0.tar.gz https://Github.com/Git/Git/archive/v2.2

  • CentOS 7下安装配置proftpd搭建ftp服务器的详细教程

    proftpd全称:Professional FTP daemon,是针对Wu-FTP的弱项而开发的,除了改进的安全性,还具备许多Wu-FTP没有的特点,能以Stand-alone.xinetd模式运行等.ProFTP已经成为继Wu-FTP之后最为流行的FTP服务器软件,越来越多的站点选用它构筑安全高效的FTP站点,ProFTP配置方便,并有MySQL和Quota模块可供选择,利用它们的完美结合可以实现非系统账号的管理和用户磁盘的限制.<摘抄百度百科> 本章通过下载源码的方式安装,可以到官网下

  • CentOS 7.x下的LEMP环境搭建详细教程

    最近由于项目需求,将服务器从CentOS6升级到CentOS7,对应的PHP版本也升级到PHP5.6.我们熟悉的有LEMP环境一键安装包,但是本文我们将单独安装各个组件模块,并搭建一个完整的PHP运行平台. 我们常说的LNMP环境是指Linux/nginx/MySQL/PHP组合,而LEMP是什么呢?其实Nginx的发音是Engine-X = E,LEMP包是由Linux.nginx.MariaDB/MySQL和PHP组成的,那么看来LEMP和LNMP是一样的,而现在业内习惯性的称作LEMP.M

  • CentOS下搭建SVN服务器的步骤详解

    本文实例讲述了CentOS下搭建SVN服务器的步骤.分享给大家供大家参考,具体如下: 1.安装svn yum install -y subversion 2.验证安装是否成功 svnserve --version 3.创建svn版本库 mkdir svn svnadmin create svn/repo 注:这里的repo是版本库名称 4.配置svn 创建版本库后,在这个版本库的conf目录下会生成3个配置文件: [root@singledb conf]# pwd /root/svn/repo/

随机推荐