MySQL多实例部署

Posted 我的紫霞辣辣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL多实例部署相关的知识,希望对你有一定的参考价值。

mysql多实例部署

nginx多实例就是多个配置文件
mysql多实例:

  1. 多个数据目录
  2. 多个端口
  3. 多个socket文件
  4. 多个日志文件

多实例指的是:同一个服务,监听不同的端口,启多个进程

1. 创建多个数据库进程的数据目录
mkdir -p /data/{3307,3308,3309}

2. 准备多个进程的配置文件
vim /data/3307/my.cnf
[mysqld]
basedir=/service/mysql
datadir=/data/3307/data
port=3307
socket=/data/3307/mysql.sock
log-error=/data/3307/data/mysql.err
log-bin=/data/3307/data/mysql-bin
server_id=7

vim /data/3308/my.cnf
[mysqld]
basedir=/service/mysql
datadir=/data/3308/data
port=3308
socket=/data/3308/mysql.sock
log-error=/data/3308/data/mysql.err
log-bin=/data/3308/data/mysql-bin
server_id=8

vim /data/3309/my.cnf 
[mysqld]
basedir=/service/mysql
datadir=/data/3309/data
port=3309
socket=/data/3309/mysql.sock
log-error=/data/3309/data/mysql.err
log-bin=/data/3309/data/mysql-bin
server_id=9

3. 初始化生成多个数据库目录和文件(默认配置文件,基本目录,存放数据的目录)
cd /service/mysql/scripts
./mysql_install_db --defaults-file=/data/3307/my.cnf --user=mysql --basedir=/service/mysql --datadir=/data/3307/data
./mysql_install_db --defaults-file=/data/3308/my.cnf --user=mysql --basedir=/service/mysql --datadir=/data/3308/data
./mysql_install_db --defaults-file=/data/3309/my.cnf --user=mysql --basedir=/service/mysql --datadir=/data/3309/data

4. 授权目录
chown -R mysql.mysql /data

5. 启动数据库(mysqld_safe在程序的环境变量目录/service/mysql/bin/)
mysqld_safe --defaults-file=/data/3307/my.cnf &
mysqld_safe --defaults-file=/data/3308/my.cnf &
mysqld_safe --defaults-file=/data/3309/my.cnf &

6. 检查端口
netstat -lntup|grep 330

7. 创建数据库不同端口进程的密码
mysqladmin -uroot -S /data/3307/mysql.sock password "123"		# -S指定套接字文件
mysqladmin -uroot -S /data/3308/mysql.sock password "123"
mysqladmin -uroot -S /data/3309/mysql.sock password "123"

8. 测试,使用本地登陆命令登陆数据库
mysql -uroot -p123 -S /data/3307/mysql.sock

9. 将本地登陆命令添加至系统环境变量
vim /usr/bin/mysql3307
mysql -uroot -p123 -S /data/3307/mysql.sock

vim /usr/bin/mysql3308
mysql -uroot -p123 -S /data/3308/mysql.sock

vim /usr/bin/mysql3309
mysql -uroot -p123 -S /data/3309/mysql.sock

10. 修改保存密码文件的权限
chmod a+x /usr/bin/mysql3307
chmod a+x /usr/bin/mysql3308
chmod a+x /usr/bin/mysql3309

11. 测试
mysql3307			直接登陆数据库进程,端口号3307
mysql3308			直接登陆数据库进程,端口号3308			
mysql3309			直接登陆数据库进程,端口号3309

- 如下所示,我们如果不添加系统环境变量,在本地登陆数据库,下面两种方式都可以,远程登陆数据库只能用第一条命令
mysql -uroot -p123 -h127.0.0.1 -P3307				# 远程登陆数据库需要指定ip地址和端口号
mysql -uroot -p123 -S /data/3307/mysql.sock

以上是关于MySQL多实例部署的主要内容,如果未能解决你的问题,请参考以下文章

MySQL运维-多实例部署

Mysql多实例部署

MySQL-5.6.36-多实例-部署(编译版)

MySQL多实例部署

MySQL单机多实例部署详解

mysql 多实例部署