今天我们来谈谈 linux下 mysql 多实例的安装。有些小伙伴可能会问为何要安装多实例呢?在项目中是否推荐一台机器安装多个mysql实例呢?各位看官别着急,容我慢慢向您道来。。。
首先我们来讲讲多实例安装的好处:
- 一般项目中数据库服务器或多或少呢都存在性能过剩的情况,多个mysql实例可以更好的利用设备硬件资源。当然啦如果您的机器跑一个mysql都如老汉推车,额好吧,老牛拉车一般,那么多实例安装就只能是别人家的操作啦。
- 对mysql学习感兴趣的同学呢,强烈建议安装多个实例,这样在之后学习主从复制,以及高可用的数据库架构会省心不少,至少不用在多个虚拟机间切来切去。
在项目中是否推荐多实例安装呢?
这个就是仁者见仁智者见智了,不过淘宝和网易等大厂,财大气粗多实例安装自是不在话下。
好了废话不多说,我们进入正题。。。。。。
各位看官在安装多实例之前我们先来回顾一下单实例的安装,虽是回顾,千里之行始于足下,这一步也是必不可少的。这里为了节省篇幅我们就贴个链接,截张图,重点之处,再拎出来剥皮抽筋~
-
下载mysql linux generic 版本
https://dev.mysql.com/downloads/mysql/5.7.html#downloads -
依赖包安装
红色框中的提示信息告诉我们,欲练此功必先。。。好吧,我们需要安装一个依赖包,这个包实际上不是libnuma,它包含在numactl中所以我们需要安装numactl How to do?
apt-get install numactl
准备工作做好之后,我们来走一条名叫成功的天路~(–)~
我们来看看分解动作:
chown mysql:mysql mysql-files数据目录必须所属mysql组mysql用户
bin/mysqld --initialize --user=mysql
初始化数据路库数据目录,自动生成user相关的用户权限表等
bin/mysqld_safe start --user=mysql &
后台启动mysql
chkconfig add mysql.server
设置mysql会开机自启动
关于开机自启动的设置补充:
等你的mysql跑起来之后我们就可以开始今天的主题了,原谅我前戏太足。。。。。。
多实例安装步骤如下:
- 关闭mysql
/etc/init.d/mysql,server stop
- 在 /usr/local 目录下创建若干文件目录,作为数据库的数据目录
cd /usr/local
mkdir data1
mkdir data2
mkdir data3
chown mysql:mysql data*
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/data1
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/data2
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/data3
Note : 在初始化数据目录之后我们需要记下生成的数据库临时密码
- 配置/etc/my.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin =/usr/local/mysql/bin/mysqladmin
log =/usr/local/mysql/mysqld_multi.log
[mysqld1]
socket = /tmp/mysql1.sock
port = 3307
pid-file = /usr/local/data1/mysql.pid
datadir = /usr/local/data1
server-id = 1
[mysqld2]
socket = /tmp/mysql2.sock
port = 3308
pid-file = /usr/local/data2/mysql.pid
datadir = /usr/local/data2
server-id = 2
[mysqld3]
socket = /tmp/mysql3.sock
port = 3309
pid-file = /usr/local/data3/mysql.pid
datadir = /usr/local/data3
server-id = 3
- 启动多个实例
/user/local/mysql/bin/mysqld_multi --defaults-extra-file=/etc/my.cnf start
- 查看运行状态
/user/local/mysql/bin/mysqld_multi report
看到上图,那么恭喜,一切安好,恭喜上车。。。
我们可以选择启动某一个数据库实例,命令如下
/user/local/mysql/bin/mysqld_multi --defaults-extra-file=/etc/my.cnf start 1
注意这里的数字和配置中[mysqld1]数字保持一致
在mysql 5.7中登陆成功之后,第一步要求我们修改密码,否则我们什么也不能做,修改密码命令如下:
ALTER USER USER() IDENTIFIED BY ‘jadengu’;