MySQL多实例部署
Posted 我的紫霞辣辣
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL多实例部署相关的知识,希望对你有一定的参考价值。
mysql多实例部署
nginx多实例就是多个配置文件
mysql多实例:
- 多个数据目录
- 多个端口
- 多个socket文件
- 多个日志文件
多实例指的是:同一个服务,监听不同的端口,启多个进程
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多实例部署的主要内容,如果未能解决你的问题,请参考以下文章