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

 更新时间:2020年5月26日 07:35  点击:1692

起因

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

一、准备

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内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

[!--infotagslink--]

相关文章

  • golang 调用 php7详解及实例

    这篇文章主要介绍了golang 调用 php7详解及实例的相关资料,需要的朋友可以参考下...2017-01-15
  • 带你了解PHP7 性能翻倍的关键

    20岁老牌网页程序语言PHP,最快将在10月底释出PHP 7新版,这是十年来的首次大改版,最大特色是在性能上的大突破,能比前一版PHP 5快上一倍,PHP之父Rasmus Lerdorf表示,甚至能比HHVM虚拟机下的PHP程序性能更快。HHVM 是脸书为自...2015-11-24
  • mysql5.7 设置远程访问的实现

    这篇文章主要介绍了mysql5.7 设置远程访问的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-08
  • CentOS8安装SQLServer2019的过程

    这篇文章主要介绍了CentOS8安装SQLServer2019的步骤,本文通过命令实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • CentOS7.2 安装 MongoDB 3.4的教程

    这篇文章主要介绍了CentOS7.2 安装 MongoDB 3.4的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • 详解MySQL8.0 密码过期策略

    这篇文章主要介绍了MySQL8.0 密码过期策略的相关资料,帮助大家更好的理解和使用MySQL8.0的新功能,感兴趣的朋友可以了解下...2020-11-09
  • 【搞机番外篇】华为P10评测 拍照真超越iPhone 7了

    P10作为华为2017年的新旗舰,承载着狙击三星S8、小米6等一众竞争对手旗舰的重任。不过P10刚发布的时候大家似乎有些失望,毕竟拍照与处理器几乎都是继承Mate 9,缺少一些令人兴奋地爆点。...2017-07-06
  • C++17新特性个人总结

    这篇文章主要介绍了C++17新特性个人总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-22
  • Linux CentOS MySQL数据库安装配置教程

    这篇文章主要为大家详细介绍了Linux CentOS MySQL数据库的安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-05-19
  • win7和win2008 r2下配置IIS7(ASP.net运行环境)

    这篇文章主要介绍了win7和win2008 r2下配置IIS7(ASP.net运行环境) ,需要的朋友可以参考下...2016-01-27
  • win2008之IIS7中FTP设置技巧

    如果要允许用户在站点中上载或下载文件,就需要在 Web 服务器上设置 FTP。无论站点是位于 Intranet 还是位于 Internet 上,使用 FTP 在所提供的位置中上载和下载文件的原理是相同的。...2016-01-27
  • Debian7编译安装nginx简明教程

    这篇文章主要介绍了Debian7编译安装nginx简明教程,本文直接给出操作命令和步骤,需要的朋友可以参考下...2016-01-27
  • 详解如何使用Docker部署Django+MySQL8开发环境

    这篇文章主要介绍了详解如何使用Docker部署Django+MySQL8开发环境,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-07-19
  • win7下MySql 5.7安装配置方法图文教程

    这篇文章主要为大家分享了win7下MySql 5.7安装配置方法图文教程,感兴趣的小伙伴们可以参考一下...2016-05-20
  • centos 6.5下 mysql-community-server. 5.7.18-1.el6安装

    这篇文章主要介绍了centos 6.5下 mysql-community-server. 5.7.18-1.el6安装,需要的朋友可以参考下...2017-05-09
  • mysql 5.7.17 安装配置方法图文教程(windows10)

    这篇文章主要为大家分享了mysql 5.7.17 安装配置方法图文教程,具有一定的参考价值,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-22
  • mysql 5.7.11 winx64快速安装配置教程

    这篇文章主要为大家分享了mysql5.7.11 winx64安装配置方法图文教程,感兴趣的朋友可以参考一下...2016-07-25
  • Centos下 修改mysql密码的方法

    这篇文章主要介绍了Centos下 修改mysql密码的方法,需要的朋友可以参考下...2017-03-14
  • MySQL8新特性之全局参数持久化详解

    从8.0开始,可通过SET PERSIST命令将全局变量的修改持久化到配置文件中,下面这篇文章主要给大家介绍了关于MySQL8新特性之全局参数持久化的相关资料,需要的朋友可以参考下...2021-10-11
  • mysql 5.7.17 64bit安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 5.7.17 64bit解压缩版安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-15