共计 1748 个字符,预计需要花费 5 分钟才能阅读完成。
自动写代码机器人,免费开通
这篇文章将为大家详细讲解有关怎么在 MySQL 中实现多实例配置,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1.1 什么是 Mysql 多实例?
简单的说,Mysql 多实例就是在一台服务器上同时开启多个不同的服务端口 (如 : 3306/3307/3308) 同时运行多个 Mysql 服务器, 这些服务进程通过不同的 socket 来监听不同的服务端口来提供服务
这些 Mysql 多实例共用一套 Mysql 安装程序, 使用不同的 my.cnf 配置文件, 启动程序, 和数据文件, 在提供服务时, 多实例 Mysql 在逻辑上来看是各自独立的, 他们根据配置文件对应设定值, 获得服务器相应的资源
1.2 多实例配置思路:
1. 多套独立目录
2. 每个实例有独立的数据(初始化数据)
3. 多个端口
4. 多个 socket
5. 多个启动程序
6. 多个日志文件
1.3 多实例配置过程:
1.3.1 创建独立目录:
mkdir -p /data/{3307,3308}
chown –R mysql.mysql /data
1.3.2 编写每个实例的配置文件:
[root@db01 ~]# cat /data/3307/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3307
socket=/data/3307/mysql.sock
log-error=/data/3307/mysql.log
log_bin=/data/3307/mysql-bin
binlog_format=row
skip_name_resolve=1
server_id=3307
port=3307
1.3.3 初始化数据:
./mysql_install_db –defaults-file=/data/3307/my.cnf –basedir=/application/mysql –datadir=/data/3307 –user=mysql
1.3.4 启动实例:
sh mysqld_safe –defaults-file=/data/3307/my.cnf –pid-file=/data/3307/3307.pid
shell 脚本管理多实例服务:
#!/bin/bash
. /etc/init.d/functions
. /etc/profile
Start= /application/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf --pid-file=/data/3307/3307.pid
Stop= mysqladmin -uroot -S /data/3307/mysql.sock shutdown
Port=`ss -tunlp|grep 3307|wc -l`
function START(){ if [ $Port -ne 1 ];then
$Start /dev/null 2 1
sleep 3
if [ $? -eq 0 ];then
action MySQL 3307 Starting /bin/true
fi
else
action MySQL 3307 Already Exists /bin/true
fi
function STOP(){ if [ $Port -ne 0 ];then
$Stop
if [ $? -eq 0 ];then
action MySQL Stoping Successfuly /bin/true
fi
else
action MySQL already Stoped /bin/true
fi
function RESTART(){
STOP
sleep 1
START
case $1 in
start)
START
;;
stop)
STOP
;;
restart)
RESTART
;;
echo Usage: $0 {start|stop|restart}
;;
esac
关于怎么在 MySQL 中实现多实例配置就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
向 AI 问一下细节