mysql多实例部署

多实例概述

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}/data
chown -R mysql.mysql /mysql

3、准备相应的MySQL配置文件

vim /mysql/3306/my.cnf

复制代码
[mysqld]
bind-address=0.0.0.0
port=3306
user=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/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/3306/data --initialize

/usr/local/mysql/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

 

posted @   太阳的阳ฅ  阅读(380)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示