欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL的多实例创建

程序员文章站 2022-06-01 17:45:45
...

多实例在大公司中应用广泛,因其硬件性能较高,所以更能充分利用资源.
多实例就是在一个服务器中启动了多个MySQL服务.
配置多实例时.每个实例的端口,配置文件和数据目录,socket还有日志都需要独立出来.但是需要共用一个MySQL软件.

准备多个目录

mkdir -p /data/330{7,8,9}/data

准备配置文件

cat > /data/3307/my.cnf <<EOF
[mysqld]
basedir=/data/app/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
port=3307
server_id=7
log_bin=/data/3307/mysql-bin
EOF

cat > /data/3308/my.cnf <<EOF
[mysqld]
basedir=/data/app/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
port=3308
server_id=8
log_bin=/data/3308/mysql-bin
EOF

cat > /data/3309/my.cnf <<EOF
[mysqld]
basedir=/data/app/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
port=3309
server_id=9
log_bin=/data/3309/mysql-bin
EOF

初始化三套数据

mv /etc/my.cnf /etc/my.cnf.bak
mysqld --initialize-insecure  --user=mysql --datadir=/data/3307/data --basedir=/data/app/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/data/3308/data --basedir=/data/app/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/data/3309/data --basedir=/data/app/mysql

systemd管理多实例

cd /etc/systemd/system
cp my.service mysqld3307.service
cp my.service mysqld3308.service
cp my.service mysqld3309.service

修改以下内容:

vim mysqld3307.service
ExecStart=/data/app/mysql/bin/mysqld  --defaults-file=/data/3307/my.cnf

vim mysqld3308.service
ExecStart=/data/app/mysql/bin/mysqld  --defaults-file=/data/3308/my.cnf


vim mysqld3309.service
ExecStart=/data/app/mysql/bin/mysqld  --defaults-file=/data/3309/my.cnf

授权

chown -R mysql.mysql /data/*

启动

systemctl start mysqld3307.service
systemctl start mysqld3308.service
systemctl start mysqld3309.service

验证多实例

netstat -lnp|grep 330
mysql -S /data/3307/mysql.sock -e "select @@server_id"
mysql -S /data/3308/mysql.sock -e "select @@server_id"
mysql -S /data/3309/mysql.sock -e "select @@server_id"
相关标签: 数据库基础