多实例概述
mysql多实例其实就是在同一台服务器上开启不同的端口,运行多个msyql服务进程,通过不同的socket来监听不同的服务端口,提供不同的服务
多实例部署
多实例部署时通过配置文件的相互隔离来实现的
1、先安装MySQL常用的依赖包,并下载所需MySQL对应版本安装包下面准备的是5.7.27二进制的包
yum install -y libaio libnuma* perl
2、解压、创建mysql用户、数据目录
# tar xf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz -C /usr/local/#ln -s mysql-5.7.27-linux-glibc2.12-x86_64/mysql
创建mysql组和用户
groupadd mysql
useradd-r -g mysql mysql
创建mysq数据目录mkdir -p /mysql/{3306,3307}/datachown -R mysql.mysql /mysql
3、准备相应的MySQL配置文件
vim /mysql/3306/my.cnf
[mysqld]
bind-address=0.0.0.0port=3306user=mysql
basedir=/usr/local/mysql
datadir=/mysql/3306/data
socket=/mysql/3306/mysql.sock
log-error=/mysql/3306/mysql.err
pid-file=/mysql/3306/mysql.pid
slow_query_log=ON
slow_query_log_file= /mysql/3306/slow.log
long_query_time= 1#character config
character_set_server=utf8mb4
symbolic-links=0
cp /mysql/3306/my.cnf /mysql/3307/
sed -i 's/3306/3307/g' /mysql/3307/my.cnf
4、初始化数据库
/usr/localmysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/3306/data --initialize/usr/localmysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/3307/data --initialize
初始化之后数据库root账号密码会直接输出到终端显示,记录mysql.err日志中 也可查看
由于初始化时未指定配置文件,所以在mysql.err没有生成 可手动创建一下,注意之后要重新授权,否则会启动失败
5、启动多实例
/usr/local/mysql/bin/mysqld_safe --defaults-file=/mysql/3306/my.cnf &
/usr/local/mysql/bin/mysqld_safe --defaults-file=/mysql/3307/my.cnf &
6、连接实例
mysql -uroot -p -S /mysql/3306/mysql.sock
7、停止实例
mysqladmin -S /mysql/3306/mysql.sock -uroot -p123123 shutdown