设为首页收藏本站

安徽论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9917|回复: 0

MySQL多实例的配置应用实例场景

[复制链接]

110

主题

0

回帖

342

积分

中级会员

Rank: 3Rank: 3

积分
342
发表于 2022-3-26 10:59:59 | 显示全部楼层 |阅读模式
网站内容均来自网络,本站只提供信息平台,如有侵权请联系删除,谢谢!
目录


MySQL多实例


多实例概述


什么是多实例:

在一台服务器上,运行多个数据库服务,这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务;

为什么要配置多实例

       
  • 节约运维成本   
  • 提高硬件利用率

多实例的应用场景

       
  • 资金比较紧张的公司;   
  • 并发访问不是特别大的业务;

配置多实例

1.安装软件
具体操作:
解压软件、修改目录名、修改PATH路径
如果在已有数据库服务的机器上运行多实例,先查看数据库服务的版本是否支持多实例,如果不支持需要停掉服务,安装能支持多实例的数据库版本
接下来安装提供多实例服务的软件
下面演示的版本为MySQL5.7.36,使用二进制安装,其余安装方式请看MySQL的安装方式
  1. groupadd -r -g 306 mysql
  2. useradd -g 306 -r -u 306 mysql
  3. tar -zxvf mysql-5.7.36-linux-glibc2.12-x86-64.tar.gz
  4. mv /root/mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql
复制代码
2.配置文件
主配置文件/etc/my.cnf
       
  • 每个实例要有独立:数据库目录、端口   
  • socket文件、pid文件、错误日志文件
  1. vim /etc/my.cnf
  2. [mysqld_multi]       #启动多实例
  3. mysqld     = /usr/local/mysql/bin/mysqld_safe   #指定进程文件路径
  4. mysqladmin = /usr/local/mysql/bin/mysqladmin    #指定管理命令路径
  5. user       = root    #指定进程用户
  6. #pass       = MySQL@123  #可以不指定密码,在初始化的时候也会出现密码

  7. [mysqld3306]     #实例进程名称,3306是服务编号
  8. socket     = /tmp/mysql.sock1   #指定sock文件的路径和名称
  9. port       = 3306    #指定端口
  10. pid-file   = /data/3306/mysqld.pid   #进程文件pid号文件按位置
  11. datadir    = /data/3306     #数据库目录,最好提前创建
  12. log-error  = /data/3306/mysqld.log    #错误日志位置

  13. [mysqld3307]
  14. socket     = /tmp/mysql.sock2
  15. port       = 3307
  16. pid-file   = /data/3307/mysqld.pid
  17. datadir    = /data/3307
  18. log-error  = /data/3307/mysqld.log

  19. mkdir -p /data/330{6..7}
  20. chown -R mysql:mysql /data/330{6,7}
复制代码
socket文件:自己访问自己的数据库服务时,通过socket文件传递参数
3.启动服务
管理多实例
       
  • 启动服务
mysqld_multi start 实例编号 #启动服务
       
  • 停止服务
mysqld_multi --user=root --password=密码 stop 实例编号
  1. /usr/local/mysql/bin/mysqld_multi start 3306   #首次启动初始化
  2. #也可以使用这个命令来初始化
  3. /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307
  4. #用这个命令初始化之后还需要在使用启动服务
  5. /usr/local/mysql/bin/mysqld_multi start 3307
  6. 输入绝对路径太麻烦,可以写入环境变量
  7. vim /etc/
  8. export PATH=$PATH:/usr/local/mysql/bin/

  9. source /etc/profile.d/mysql.sh
  10. #然后就可以写短指令
  11. mysqld_multi start 3307
复制代码

4.查看服务状态
  1. ss -nultp | grep 3306
  2. ss -nultp | grep 3307
复制代码

5.使用初始密码连接服务
客户端访问
本机连接
使用初始密码连接
修改本机登录密码
  1. #mysql -uroot -p'初始密码' -S sock文件
  2. #mysql>alter user root@"localhost" identified by "新密码";
  3. #连接第一个数据库实例测试
  4. /usr/local/mysql/bin/mysql -uroot -p'' -S /tmp/mysql.sock1
  5. show databases;
  6. alter user root@"localhost" identified by "123456";
  7. show databases;
  8. exit
  9. #连接第二个数据库实例测试
  10. mysql -uroot -p'' -S /tmp/mysql.sock2
  11. show databases;
  12. alter user root@"localhost" identified by "123456";
  13. show databases;
  14. exit
复制代码


使用新密码再次登录验证

6.停止多实例
  1. mysqld_multi --user=root  --password=123456 stop 3306
  2. #mysqld_multi --user=root  --password=123456 stop  如果不写实例号,就会停止数据库用户为root密码为123456的实例
  3. ss -nultp | grep 3306  
复制代码

到此这篇关于MySQL多实例的配置应用实例场景的文章就介绍到这了,更多相关MySQL多实例内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
                                                        
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
免责声明
1. 本论坛所提供的信息均来自网络,本网站只提供平台服务,所有账号发表的言论与本网站无关。
2. 其他单位或个人在使用、转载或引用本文时,必须事先获得该帖子作者和本人的同意。
3. 本帖部分内容转载自其他媒体,但并不代表本人赞同其观点和对其真实性负责。
4. 如有侵权,请立即联系,本网站将及时删除相关内容。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表