栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Mysql5.7 多实例

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mysql5.7 多实例

什么是mysql多实例?

在一台服务器中装有一个mysql数据库,但是现在的情况是这台服务器的配置非常的高,那么跑一个数据库是不是很浪费,那么我们可以在服务器中跑多个数据库实例,每个数据库实例相互不影响。这里还是一个mysql数据库,只是运行了多个实例,相当于你开了多个QQ一样。从而更好的利用服务器的资源,不用重新买服务器搭建mysql。

一、配置my.cnf文件
 ①在[mysqld] 标签下面添加
# 多实例配置 新建一个mysqld实例
[mysqld1]
port = 3307  # 端口
datadir = /mdata/data1 # 数据目录
socket = /tmp/mysql.sock1 # 设置sock

 

 ②  执行初始化mysqld1 
mysqld --initialize-insecure --datadir=/mdata/data1  ###初始化mysqld --initialize-insecure 初始化且密码为空的意思

 注意:当服务器里面装有多个数据库,版本不一样的话,

执行改命令时最好 加上全路径 例如我的mysql-5.7.16安装在 /usr/local/mysql-5.7.16则 执行

/usr/local/mysql-5.7.16/bin/mysqld --initialize-insecure --datadir=/mdata/data1

因为我在这里执行,跑到另外的低版本的mysql中去了,搞了半天没有通

执行完成之后,就可以看到/mdata/data1 里面有mysql的初始化数据了

③ 配置mysqld_multi

[mysqld_multi]
user=root                                  ## 账号
pass='123456'                              ## 密码 
mysqld = /usr/local/mysql/bin/mysqld_safe  ## 启动mysql的链接
mysqladmin=/usr/local/mysql/bin/mysqladmin ## 关闭mysql的链接
log=/usr/local/mysql/mysqld_multi.log      ## 日志

解析:

mysqld_multi标签下面的

有启动mysql和关闭mysql的链接, 注意关闭mysql的链接是通过mysqladmin的命令关闭的,这里必须是要在mysqld_multi里面配置账户密码,不然执行mysql_multi stop,是不能关闭运行的实例的,user和pass配置的就是 下面的mysqld1和mysql2的账户密码,也可以单独在下面配置。 

命令:mysqladmin -uroot -p123456 -S /tmp/mysql.sock shutdown

这个shutdown其实就是进入mysql实例后直接执行也可以关闭,mysqladmin相当于是登录进去后关闭mysql实例。

a) 这里的坑,mysqld的配置文件默认是在  /usr/local/mysql/bin/mysqld_safe 目录,而我们的mysqld_safe 是在 /usr/local/mysql-5.7.15/bin/目录下面,所以这里需要建立2个软链接,这里是个坑,所以建议我们的mysql最好是建立到/usr/local/mysql目录下面,不要用mysql-5.7.16目录

ln -s /usr/local/mysql-5.7.15/bin/mysqld_safe /usr/local/mysql/bin/mysqld_safe

ln -s /usr/local/mysql-5.7.15/mysql/bin/mysqld   /usr/local/mysql/bin/mysqld  

b) 启动mysqld1 这里实例

 mysqld_multi start 1 启动我们新建的mysqld1实例(我这里是有多个数据库影响了,所以必须带路径)

mysqld_multi stop 1 停止我们的实例

 c) 查看我们的mysqld1实例是否启动成功

mysqld_multi report

 这里显示就是mysqld1实例启动了

启动不成功,需要去看mysql的日志,对应的解决问题即可。

d) 连接mysqld1实例

mysql -S /tmp/mysql.sock1 -u root -p

/tmp/mysql.sock1 是我们配置的连接mysql的sock,这里必须写上,而远程连接的话直接连接端口3307即可 默认的初始密码为空。是因为前面初始化的时候,mysqld --initialize-insecure --datadir=/mdata/data1  ### --initialize-insecure 初始化且密码为空的意思

f) 如果还要建立多个实例的话 则my.cnf配置 

 然后重新初始化即可

小知识:如果单独配置实例则在对应的[mysqld_num] 下面配置参数,如果要共用则在[mysqld]下面配置

 二、 配置不同版本的mysql多实例 再装一个5.6.28的版本
 ① 到mysql官网下载一个 mysql 5.6.28版本的数据库  ② 解压到/usr/local/mysql-5.6.28目录
  tar -xvf mysql-5.6.28.tar.gz

     并且把目录权限给mysql  

       chown mysql:mysql /usr/local/mysql-5.6.28 -R

   ③ 初始化mysql5.6
cd /usr/local/mysql-5.6.28
scripts/mysql_install_db --user=mysql --datadir=/mdata/data56
    ④ 配置mysql.cnf

[mysqld56]
server-id = 56  ##每个实例不一样的 server-id
port = 3356     ##端口
basedir = /usr/local/mysql-5.6.28  ##mysql5.6.28的解压目录
datadir = /mdata/data56            ##我们的数据目录
socket = /tmp/mysql.sock56         ##本地连接的sock
         ⑤ 启动和关闭

        mysqld_muilt start 56 或者 直接全部启动 mysqld_muilt start

        查看是否启动成功  mysqld_muilt report

        关闭就是stop

         注意:如果批量关闭和启动有问题,那么可能需要配置密码跟其他的实例一样

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/747305.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号