一、什么是多实例以及优缺点
1、什么是多实例
就是在一台服务器上开启多个不同的服务端口,比如3306、3307、3308...,运行多个不同的MySQL服务。
这些MySQL多实例共用一套安装程序,使用不同(也可以相同)的配置文件、启动程序、数据文件;多实例对硬件资源的获取通过配置文件来指定。
2、多实例的优缺点
优点
可以有效利用服务器资源。当单个服务器资源充足时,可以充分利用剩余资源;节约资源。需要独立的数据库服务,并且需要主从同步的情况下。
缺点
当某一个实例消耗大量的CPU、内存时会影响其它实例提供的服务质量。
3、多实例应用场景
需要数据库单独提供服务,并且需要进行主从同步
服务并发量不大,服务器的资源很充足
二、多实例的安装
(一)准备工作
1、关闭单实例服务
在进行多实例安装时,先看看服务器上是否还有MySQL服务,如果有停掉它:
#查看mysql服务
[root@hadoop-slave1 support-files]#ps -ef | grep mysql
root 44428 1 0 Aug08 pts/0 00:00:00 /bin/sh /application/mysql-5.5.32/bin/mysqld_safe
--datadir=/application/mysql-5.5.32/data
--pid-file=/application/mysql-5.5.32/data/hadoop-slave1.pid
mysql44671 44428 0 Aug08 pts/0 00:00:14 /application/mysql-5.5.32/bin/mysqld --basedir=/application/mysql-5.5.32
--datadir=/application/mysql-5.5.32/data
--plugin-dir=/application/mysql-5.5.32/lib/plugin --user=mysql
--log-error=/application/mysql-5.5.32/data/hadoop-slave1.err
--pid-file=/application/mysql-5.5.32/data/hadoop-slave1.pid
--socket=/application/mysql-5.5.32/tmp/mysql.sock --port=3306root51080 2397 0 04:00 pts/0 00:00:00 mysql -uroot -p
root54564 18054 0 10:01 pts/2 00:00:00 grep --color=auto mysql#停掉服务
[root@hadoop-slave1 support-files]#pkill mysqld
#再次查看
[root@hadoop-slave1 support-files]#ps -ef | grep mysql
root 51080 2397 0 04:00 pts/0 00:00:00 mysql -uroot -p
root54642 18054 0 10:05 pts/2 00:00:00 grep --color=auto mysql
2、删除启动的文件
#后续无需此种启动方式
[root@hadoop-slave1 support-files]#rm -f /etc/init.d/mysqld
(二)多实例配置
1、建立对应的目录
[root@hadoop-slave1 /]#mkdir -p /data/{3306,3307}/data
可看到生成的目录结构:
[root@hadoop-slave1 /]#tree data
data #总的实例目录
├── 3306 #3306实例目录
│ └── data #3306实例的数据文件目录
└── 3307 #3307实例目录
└── data #3307实例的数据文件目录
4 directories, 0 files
2、my.cnf文件配置
在3306和3307目录下分别建立my.cnf文件:
[root@hadoop-slave1 /]#tree /data
/data
├──3306│ ├── data
│ └── my.cnf#3306配置文件
└── 3307├── data
└── my.cnf#3307配置文件
4 directories, 2 files
其中,3306端口下的my.cnf文件为:
[client]
port= 3306socket= /data/3306/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
user=mysql
port= 3306socket= /data/3306/mysql.sock
basedir= /application/mysql-5.5.32 #先进行单实例安装,此为单实例的安装目录
datadir = /data/3306/data
open_files_limit= 1024back_log= 600max_connections= 800max_connect_errors= 3000table_cache= 614external-locking =FALSE
max_allowed_packet=8M
sort_buffer_size=1M
join_buffer_size=1M
thread_cache_size= 100thread_concurrency= 2query_cache_size=2M
query_cache_limit=1M
query_cache_min_res_unit=2k#default_table_type = InnoDB
thread_stack =192K#transaction_isolation = READ-COMMITTED
tmp_table_size =2M
max_heap_table_size=2M
long_query_time= 1
#log_long_format#log-error = /data/3306/error.log#log-slow-queries = /data/3306/slow.log
pid-file = /data/3306/mysql.pid
log-bin = /data/3306/mysql-bin
relay-log = /data/3306/relay-bin
relay-log-info-file = /data/3306/relay-log.info
binlog_cache_size=1M
max_binlog_cache_size=1M
max_binlog_size=2M
expire_logs_days= 7key_buffer_size=16M
read_buffer_size=1M
read_rnd_buffer_size=1M