MySQL多实例应用

MySQL多实例应用

一、什么是MySQL多实例?多实例有哪些作用?多实例的应用场景?

MySQL多实例:指的是一套MySQL程序去管理多套数据库的实例及数据,每一套数据都由一个实例支撑,实例相当于就是一个公司,数据就是这套公司的管理体系以及规则。

多实例的作用:
1、多实例一般在公司里的话做测试环境使用,也有做备份数据库使用。
2、能有效的利用这台服务器上的资源。
3、能节约服务器资源。
4、能做高可用,负载均衡所使用,一般的会在MyCAT、MHA、Atlas等架构使用。

多实例应用到哪些场景:
1、一般大型企业作实验会用到多实例进行环境测试,数据测试,开发测试等等。
2、资金比较紧张的小公司能降低服务所带来的测试成本。
3、并发量不是很大的机器也可以使用,或者资源有所剩余的机器也可使用。
4、DBA进行数据库高可用,高性能、负载均衡测试会使用到。

二、多实例的环境准备

环境:使用VMware虚拟机即可,如果达不到下如下配置,可适当降低。

1、系统:CentOS Linux release 8.0.1905 (Core) mysql版本:5.7.20
2、内存:16GB
3、CPU:4个处理器内核
4、网络:桥接模式即可
5、磁盘大小:适当大小即可,一般20G即可

环境准备好以后进行以下操作:

[root@hdfeng ~]# mkdir -p /opt/data/330{7,8,9}/data		创建实例数据目录
cat >/opt/data/3307/my.cnf <<EOF
[mysqld]
basedir=/opt/mysql
datadir=/opt/data/3307/data
socket=/opt/data/3307/mysql.sock
log_error=/opt/data/3307/mysql.log
port=3307
server_id=7
log_bin=/opt/data/3307/mysql-bin
[mysql]
socket=/opt/data/3307/mysql.sock
prompt=3307[\\d]>
EOF

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

cat > /opt/data/3309/my.cnf <<EOF
[mysqld]
basedir=/opt/mysql
datadir=/opt/data/3309/data
socket=/opt/data/3309/mysql.sock
log_error=/opt/data/3309/mysql.log
port=3309
server_id=9
log_bin=/opt/data/3309/mysql-bin
[mysql]
socket=/opt/data/3309/mysql.sock
prompt=3309[\\d]>
EOF
初始化三套数据库:
mv /etc/my.cnf /etc/my.cnf.backup_basic
mysqld --initialize-insecure  --user=mysql --datadir=/opt/data/3307/data --basedir=/opt/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/opt/data/3308/data --basedir=/opt/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/opt/data/3309/data --basedir=/opt/mysql

使用CentOS8的systemd进行管理,进行如下配置:

[root@hdfeng mysql]# cd /etc/systemd/system/

因为在目录下有之前配置过的mysqld,所以只要换个名字,就能接着使用,不过需要修改里面ExecStart的配置,配置如下(3个实例则需要创建3个service):
在这里插入图片描述

vim mysql3307/3308/3309.service
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/opt/data/3307/3308/3309/my.cnf

修改完成以后,进行实例目录的授权,否则无法启动。

chown -R mysql.mysql /opt/data/* 
启动数据库实例
[root@hdfeng system]# systemctl start mysqld3307/3308/3309

启动以后查看Mysql多实例的监听状态以及进行非交互式的查看ID:

[root@hdfeng system]# netstat -nlp | grep 330
tcp6       0      0 :::3306                 :::*                    LISTEN      866/mysqld
tcp6       0      0 :::3307                 :::*                    LISTEN      2674/mysqld
tcp6       0      0 :::3308                 :::*                    LISTEN      2506/mysqld
tcp6       0      0 :::3309                 :::*                    LISTEN      2537/mysqld
unix  2      [ ACC ]     STREAM     LISTENING     59519    2537/mysqld          /opt/data/3309/mysql.sock
unix  2      [ ACC ]     STREAM     LISTENING     59754    2674/mysqld          /opt/data/3307/mysql.sock
unix  2      [ ACC ]     STREAM     LISTENING     58148    2506/mysqld          /opt/data/3308/mysql.sock
mysql -S /opt/data/3307/3308/3309/mysql.sock -e 'select @@server_id'查看实例ID,能查看到即数据库多实例搭建成功!
[root@hdfeng system]# mysql -S /opt/data/3307/mysql.sock -e 'select @@server_id'
+-------------+
| @@server_id |
+-------------+
|           7 |
+-------------+

关闭多实例:

sytemctl stop mysqld3307/3308/3309 关闭即可

下次还会讲到这些多实例在高可用、高性能、负载均衡下的使用!
本期的话就讲这些内容,如何有错误,或者有不理解的地方,欢迎小伙伴们留言!!谢谢!

发布了3 篇原创文章 · 获赞 1 · 访问量 436

猜你喜欢

转载自blog.csdn.net/fhdsece/article/details/104202610
今日推荐