首页 > 数据库技术 > 详细

数据库多实例

时间:2019-11-13 10:05:15      阅读:82      评论:0      收藏:0      [点我收藏+]

什么是mysql多实例:
  简单的说,就是在一台机器上开启多个不同的服务端口(如:3306,3307) ,运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务。
  这些MySQL多实例共用---套MySQL安装程序,使用不同(也可以相同)的my.cnf配置文件、启动程序,数据文件。在提供服务时,多实例MySQL在逻辑上看来是各自独立的,多个实例的自身是根据配置文件对应的设定值,来取得服务器的相关硬件资源多少。
  作个比喻,MySQL多实例相当于房子的多个卧室一样, 每个实例可以看作-一个卧室,整个服务器就是一套房子,服务器的硬件资源(cpu,mem,disk)可以看作房子的卫生间、厨房、厅一样,是房子的公用资源,北漂蜗居在一起,肯定要共用上述资源。这样想我们就应,该明白了。
MySQL多实例的作用与问题:
  有效利用服务器资源
  当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务。
  节约服务器资源
  当公司资金紧张,但是数据库又需要各自尽量独立提供服务,而且,需要主从同步等
  资源相互抢占问题
  当某个服务实例并发很高或者有慢查询时,整个实例会消耗更多的内存、CPU、磁盘I0资源,导致服务器上的其它的实例提供服务的质量下降。这就相当于大家住在一一个房子的不同卧室一 样,早晨起来上班,都要刷牙、洗脸等,这样卫生间就会长期占用,其它人就要等待一样的道理。
MySQL配置方案:
1.通过多配置文件及多个启动程序来实现多实例的方案,在配置多实例之前要关掉mysql进程
第一步:创建MySQL多实例的数据文件目录

mkdir -p /data/{3306,3307}/data

第二步:删除启动文件

rm -f /etc/init.d/mysqld

第三步:上传my.cnf和mysql这个文件放在3306和3307下

cd /data/3306 cd /data/3307 rz

第四步:创建多实例的启动文件

vim /data/3306/mysql
vim /data/3307/mysql

多实例启动文件的启动mysql服务实质:

mysqld_ safe --defaults-file=/data/3306/my. cnf 2>81 > /dev/null &
mysqld_ safe --defaults-file=/data/3307/my. cnf 2>81> /dev/null &

多实例启动文件的停止mysql服务实质:

mysqladmin -u root -poldboy123 -S /data/3307/mysql.sock shut dowmn
mysqladmin -u root -poldboy123 -S /data/3306/mysql.sock shut dowmn

第五步:对目录授权

chown -R mysql.mysq /data

第六步:加执行权限,用于启动mysql

find /data/ -type f -name "mysql"|xargs chmod +x

第七步:初始化MySQL多实例的数据库文件

cd /application/mysql/scripts/
./mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data --user=mysql
./mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data --user=mysql

初始化数据库的主要目的就是创建基础的数据库文件,例如:生成musql库表等。
第八步:启动数据库

/data/3306/mysql start
/data/3307/mysql start

第九步:登陆数据库,多实例登陆需要指定sock文件

mysql -S /data/3306/mysql.sock
create database d3306;
mysql -S /data/3307/mysql.sock
create database d3307;

第十步:增加密码

mysqladmin -u root -S /data/3306/mysql.sock password 123456
mysqladmin -u root -S /data/3307/mysql.sock password 123456

2.单一配置文件

[mysqld_multi]
mysql=/usr/bin/mysqld_safe
mysqladmin=/usr/bin/mysqladmi
user = mysql
[mysqld1]#一次类推,端口不同
socket = /var/lib/mysql/mysql.sock
prot = 3306
pid-file = /var/lib/mysql/mysql.pid
datadir = /var/lib/mysql
user = mysql
skip-name-resolvee
server -id=12
master-connect retry=604
default-storage -engine=innodbe
innodb _buffer_ pool size=1G
innodb_ addi tional_ _mem pool=10M
default_ character_ set=utf8
character set_ server-utf8
read-only
relat-log-space-limit=3G
expire-logs_day=20

启动方式:

mysqld_multi --config-file=/data/mysql/my_multi.cnf start 1,2,3, 4,5,6,7

数据库多实例

原文:https://www.cnblogs.com/zrxuexi/p/11846852.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!