最近由于工作的需要,需要在同一台服务器上搭建两个Redis与MySQL的实例。
多实例:就是在一台机器上面开启多个不同的端口(如Redis用6379/6380,MySQL用3306/3307等),运行多个服务进程;公用一套安装程序,使用不同的配置文件,数据文件。
1. Redis多实例配置
1.1 查看主机Redis信息
- 用
ps命令查看Redis进程
1 | [root@localhost ~] ps -ef |grep redis |
- 查找配置文件位置
1 | [root@localhost ~] locate redis.conf |
1.2 拷贝配置文件并修改
- 拷贝
redis.conf并命名为redis6380.conf,并修改参数
1 | [root@localhost ~] cp /etc/redis.conf /etc/redis6380.conf |
- 准备上面配置的文件
1 | [root@localhost ~] mkdir –p /mnt/newdatadrive/data/redis6380 |
1.3 启动测试
- 启动
6380端口Redis服务,并查看Redis进程
1 | [root@localhost ~] /usr/local/bin/redis-server /etc/redis6380.conf |
- 测试登录
Redis客户端
1 | [root@localhost ~] redis-cli -p 6380 |
- 停止
6380端口的Redis服务
1 | redis-cli -p 6380 shutdown |
1.4 Redis数据迁移
- 登录原
Redis客户端(6379)
1 | [root@localhost ~] redis-cli -p 6379 |
- 拷贝数据文件
appendonly.aof和dump.rdb到6380
1 | # 查看6379的数据文件 |
- 启动
6380端口Redis服务,导入AOF数据文件
1 | [root@localhost ~] /usr/local/bin/redis-server /etc/redis6380.conf |
- 登录
Redis查看数据
1 | [root@localhost ~] redis-cli -p 6380 |
1.5 配置远程可访问
- 修改配置文件
redis6380.conf
1 | [root@localhost ~] vim /etc/redis6380.conf |
- 开启防火墙的端口号规则(安全组),将
6380端口号开通
1 | [root@localhost ~] /sbin/iptables -I INPUT -p tcp --dport 6380 -j ACCEPT |
- 修改完成后,要在服务里重启
Redis服务才能使设置生效
1 | /usr/local/bin/redis-server /etc/redis6380.conf |
- 测试远程访问
1 | C:\Users\zc> redis-cli -h 192.168.111.226 -p 6380 -a password123456 |
- 停止
6380的Redis服务也需要密码
1 | [root@localhost ~] redis-cli -p 6380 -a password123456 shutdown |
2. MySQL多实例配置
2.1 查看主机MySQL信息
- 查看现有
MySQL数据库实例占用端口
1 | [root@localhost ~] netstat -anp | grep mysqld |
须先关闭单实例,跟多实例会有冲突
- 备份数据:
[root@localhost ~] mysqldump -P 3306 -u root -p --all-databases > /home/backup/data3306.bak- 停止单实例服务:
[root@localhost ~] service mysqld stop
- 查找配置文件位置
1 | [root@localhost ~] locate my.cnf |
2.2 添加一个3307端口的实例
- 拷贝
my.cnf并命名为my3307.cnf,并修改参数,主要修改port,sockt,datadir
1 | [root@localhost ~] cp /etc/my.cnf /etc/my3307.cnf |
- 初始化数据库
1 | # 写入host避免反解析报错 |
- 启动
3307端口MySQL服务,并查看MySQL进程
1 | [root@localhost ~] mysqld --defaults-file=/etc/my3307.cnf --user=root & |
- 登录
MySQL
1 | # 多实例为root增加密码 |
- 停止本实例
MySQL服务
1 | [root@localhost ~] mysqladmin -u root -S /var/lib/mysql/mysql3307.sock shutdown |
2.3 再添加一个3308端口的实例
- 拷贝
my.cnf并命名为my3308.cnf,并修改参数,主要修改port,sockt,datadir
1 | [root@localhost ~] cp /etc/my.cnf /etc/my3308.cnf |
- 初始化数据库
1 | [root@localhost ~] mysqld --defaults-file=/etc/my3308.cnf --initialize-insecure |
- 启动
3308端口MySQL服务
1 | [root@localhost ~] mysqld --defaults-file=/etc/my3308.cnf --user=root & |
- 登录
MySQL
1 | # 多实例为root增加密码 |
- 停止本实例
MySQL服务
1 | [root@localhost ~] mysqladmin -u root -S /var/lib/mysql/mysql3308.sock shutdown |
2.4 实例3307开启远程访问
- 开启
3307端口防火墙
1 | [root@localhost ~] /sbin/iptables -I INPUT -p tcp --dport 3307 -j ACCEPT |
- 测试远程访问
1 | C:\Users\zc>mysql -h 192.168.111.227 -P 3307 -u root -p |
原文链接: http://chaooo.github.io/2020/02/11/env-redis-mysql.html
版权声明: 转载请注明出处.