CentOS 7.0如何启动多个MySQL实例教程(mysql-5.7.21)

 更新时间:2018年03月11日 16:24:56   作者:南山一梦  
这篇文章主要给大家介绍了关于CentOS 7.0如何启动多个MySQL实例(mysql-5.7.21)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧。

配置说明

Linux系统:CentOS-7.0

MySQL版本:5.7.21

Linux系统下启动多个MySQL实例,目前知道有两种方法,一种是通过官方提供的mysqld_multi.server来实现,但是我现在还没研究这种方法是怎么做的;另一种就是通过安装多个MySQL服务器的原始方法实现。我现在是通过第二种方法实现的。成功启动2个MySQL实例。接下来介绍一下操作过程,请多指教。

一、安装第一个MySQL(5.7.21)服务器

首先说明下我是用二进制包安装mysql的:mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

1、获取mysql二进制包,然后通过 tar命令解压,通过mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql_3306命令将解压的文件夹进行重命名成较短的名称,备注要使用的端口号,便于区分。至于要将解压后的文件放在哪里,你自己决定,区别是,如果你不是将解压文件命名成mysql后直接放到/usr/local目录下,或者通过ln在/usr/local目录下使用mysql引用的话,你需要在my.cnf或者启动命令参数中指定(basedir=实际的解压文件路径 和 datadir=实际的结业文件路径/data)。这个说明其实在mysql.server中,可以使用vi命令打开看一下。

2、看了网上很多mysql的安装方法介绍,都会提到新增用户组、用户:groupadd mysql和useradd -r -g mysql -s /bin/false mysql,增加了mysql用户和mysql用户组。这个看你自己实际需要,因为我就是自己用,没有安全问题,就没有新增,而是直接用root。如果需要新增用户和用户组,可以网上查找资料或者在MySQL的官方手册中看到:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

3、新建my.cnf或者从别处复制一份过来,主要是在初始化文件中指定basedir、datadir、端口号以及socket等参数,下图是我的my.cnf内容,请根据自己的实际路径替换相关参数,放在安装目录下:

4、按照官方文档的安装步骤,还需要在安装目录下新建一个mysql-files文件夹,具体为什么要新建这个文件夹我还不是很清楚,哈哈,给出官方文档的内容“The mysql-files directory provides a convenient location to use as the value for the secure_file_priv system variable, which limits import and export operations to a specific directory.”

5、接下来初始化mysql,首先在安装目录下新增data文件夹,然后进入到安装目录的bin文件夹下面,执行以下命令: “./mysqld --initialize --user=root --basedir=/data/program/mysql3306 --datadir=/data/program/mysql3306/data” 。在linux中,命令带参数时,如果参数名是全称,就用两个横杠“--”,如果参数时简称,就用一个横杠“-”,比如,./mysql --host=localhost 和 ./mysql -hlocalhost。在上述初始化mysql的命令中,请把参数值替换成你自己的路径和用户。如果你只安装一个mysql,并且是在/usr/local/mysql这个默认目录,就不需要指定basedir和datadir参数。如果你因为某种原因想要重新初始化,那么你需要先把data目录下的内容删掉,你可以选择删除整个data文件夹然后新增:rm -rf data, mkdir data,然后你再执行上面的初始化命令,就可以顺利重新初始化。这里需要注意的是,初始化成功之后,会在提示信息的末尾找到默认密码,一定要记住了,一会儿客户端登入的时候要用。

6、接下来创建安全传输所需的证书和key,在bin目录下执行命令: “./mysql_ssl_rsa_setup --datadir=/data/program/mysql3306/data” ,同样,将参数替换成你的值,默认的安装目录不需要指定datadir值。这个命令的作用官方说明如下:“This program creates the SSL certificate and key files and RSA key-pair files required to support secure connections using SSL and secure password exchange using RSA over unencrypted connections, if those files are missing.”,大概是说通过这个命令创建了在非加密连接上使用SSL和RSA进行安全传输所需的SSL证书和key,RSA键值对。

 7、到此mysql的初始化就完成了,可以启动mysql服务器了,5.7版本以后好像都是使用mysqld_safe命令启动服务的,也可以使用support-file目录下的mysql.server来启动,不过mysql.server也是使用mysqld_safe来启动的。mysqld_safe的命令如下: “./mysqld_safe --defaults-file=/data/program/mysql3306/my.cnf  --user=root --port=3306 &” ,关键的是要指定my.cnf路径,因为我没有安装在默认目录下,而且我们是要在一个机器上安装两个mysql的。这里面要注意的是“--defaults-file”一定要作为第一个参数,不然会报错,有相应提示;另外就是命令末尾的“&”,这个是告诉系统将mysql这个实例作为后台进程,这样退出命令的时候mysql服务器才能继续运行。

关于mysql_safe命令的详细参数可以参考:https://www.jb51.net/article/52259.htm

8、启动服务器之后,就可以使用客户端访问服务器了,在bin目录下执行命: “./mysql -uroot -P3306 -p” ,然后提示输入密码,那么你就把步骤5中的默认密码输入。进去之后,通过命令set password=password('new password')设置你的新密码,否则服务器也不会让你操作其他东西。

9、至此,已经完成一个mysql的安装。

二、安装第n个MySQL(5.7.21)服务器

有了上面的安装过程,基本上安装第n个mysql是跟上面的一样,解压安装包,重命名为mysql_port,通过端口号区分不同的mysql服务器,然后将my.cnf以及上面所执行的命令中,有关路径的参数都替换成相应的路径,就可以了。通过制定具体路径的方式,就可以实现一个linux机器下安装并启动多个mysql实例。在客户端访问服务器时,需要制定哪个端口,用参数-P3306,大写的P。

这是只一个简单安装过程的记录和学习,mysql还有很多配置和功能需要注意,后续有机会整理一下。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • MySQL 8.0.18 Hash Join不支持left/right join左右连接问题

    MySQL 8.0.18 Hash Join不支持left/right join左右连接问题

    在MySQL 8.0.18中,增加了Hash Join新功能,它适用于未创建索引的字段,做等值关联查询。这篇文章给大家介绍MySQL 8.0.18 Hash Join不支持left/right join左右连接,感兴趣的朋友一起看看吧
    2019-11-11
  • SQL字段拼接成新字段几种常见的方法

    SQL字段拼接成新字段几种常见的方法

    这篇文章主要给大家介绍了关于SQL字段拼接成新字段几种常见的方法,如我们在选择商品的时候不止需要知道商品的名字,还需要商品代码型号等,这个时候需要把这些字段拼接为一个字段进行操作或者输出,需要的朋友可以参考下
    2023-08-08
  • 一个案例彻底弄懂如何正确使用mysql inndb联合索引

    一个案例彻底弄懂如何正确使用mysql inndb联合索引

    今天小编就为大家分享一篇关于一个案例彻底弄懂如何正确使用mysql inndb联合索引,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • MySQL 字符串截取相关函数小结

    MySQL 字符串截取相关函数小结

    本文是脚本之家小编给大家收藏整理的关于MySQL 字符串截取相关函数小结,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-04-04
  • MySQL collation方法

    MySQL collation方法

    在以前用oracle的时候,很少关于它的collation方法,但是在mysql中,这点不加注意的话,却有可能会出现问题。
    2008-10-10
  • mysql自动增量备份的实例方法(本地备份与远程备份)

    mysql自动增量备份的实例方法(本地备份与远程备份)

    mysql自动增量备份的例子(本地备份与远程备份),有需要的朋友可以参考下
    2013-02-02
  • MySQL中实现行列转换的操作示例

    MySQL中实现行列转换的操作示例

    在 MySQL 中进行行列转换(即,将某些列转换为行或将某些行转换为列)通常涉及使用条件逻辑和聚合函数,本文给大家介绍了MySQL中实现行列转换的操作示例,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-06-06
  • 深入理解MySQL分区表的使用

    深入理解MySQL分区表的使用

    本文主要介绍了深入理解MySQL分区表的使用
    2024-03-03
  • 深入探究MySQL中使用where 1=1是否存在性能影响

    深入探究MySQL中使用where 1=1是否存在性能影响

    最近在项目中使用 mybatis 写 SQL 使用了 where 1=1 来简化多条件拼接的写法,案例如下,借此聊聊多条件拼接的常见的一些写法以及 where 1=1 是否存在性能影响,需要的朋友可以参考下
    2024-02-02
  • MySQL查询性能优化武器之链路追踪

    MySQL查询性能优化武器之链路追踪

    这篇文章主要介绍了MySQL查询性能优化武器之链路追踪,optimizer trace优化器追踪,可以帮助我们查看优化器生成执行计划的整个过程,以及做出的各种决策,包括访问表的方法、各种开销计算、各种转换等
    2022-08-08

最新评论