MySQL多实例部署

mysql的多实例有两种方式可以实现,两种方式各有利弊。
第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便。
第二种是通过官方自带的mysqld_multi使用单独的配置文件来实现多实例,这种方式定制每个实例的配置不太方面,优点是管理起来很方便,集中管理

第一种使用多个配置文件启动多个进行

1.安装编译好数据库

2.进行数据库初始化

/usr/local/mysql_3306/bin/mysql_install_db --basedir=/usr/local/mysql_3306 --datadir=/data/dbdata_3306 --user=mysql
/usr/local/mysql_3307/bin/mysql_install_db --basedir=/usr/local/mysql_3307 --datadir=/data/dbdata_3307 --user=mysql
/usr/local/mysql_3308/bin/mysql_install_db --basedir=/usr/local/mysql_3308 --datadir=/data/dbdata_3308 --user=mysql

3.分别创建各自的配置文件(需要指定各自的数据目录,端口,socket文件)

vim /data/dbdata_3306/my.cnf

vim /data/dbdata_3307/my.cnf

vim /data/dbdata_3308/my.cnf

4.通过配置问题启动各个实例

/bin/sh /usr/local/mysql_3306/bin/mysqld_safe --defaults-file=/data/dbdata_3306/my.cnf &

/bin/sh /usr/local/mysql_3307/bin/mysqld_safe --defaults-file=/data/dbdata_3307/my.cnf &

/bin/sh /usr/local/mysql_3308/bin/mysqld_safe --defaults-file=/data/dbdata_3308/my.cnf &

关闭不同的实例

a.kill -9 进程ID

b./bin/sh /usr/local/mysql_3306/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /data/dbdata_${mysql_port}/mysql.sock shutdown 

第二种方式通过官方自带的mysql_multi进行配置

1.安装和初始化数据库与第一种方式一样

2.编辑配置文件(三个实例的配置文件放在一起)

vi /etc/my.cnf

[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = admin
password = password

[mysqld1]    //定义实例3306

socket /data/dbdata_3306/mysql.sock

port = 3306

pid-file = /data/dbdata_3306/3306.pid

datadir = /data/dbdata_3306

..........

[mysqld2]    //定义实例3307

socket /data/dbdata_3307/mysql.sock

port = 3307

pid-file = /data/dbdata_3307/3307.pid

datadir = /data/dbdata_3307

..........

[mysqld3]    //定义实例3308

socket /data/dbdata_3308/mysql.sock

port = 3308

pid-file = /data/dbdata_3308/3308.pid

datadir = /data/dbdata_3308

..........

3.启动各个实例

/usr/local/mysql/bin/mysqld_multi start 1

/usr/local/mysql/bin/mysqld_multi start 2

/usr/local/mysql/bin/mysqld_multi start 3

或者

/usr/local/mysql/bin/mysqld_multi start 1-3

本文出自 “咚咚的博客” 博客,谢绝转载!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。