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

吾爱主题 阅读:229 2024-04-02 18:53:52 评论:0
目录
  • mysql多实例
    • 多实例概述
      • 什么是多实例:
      • 为什么要配置多实例
      • 多实例的应用场景
      • 配置多实例

mysql多实例

多实例概述

什么是多实例:

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

为什么要配置多实例

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

多实例的应用场景

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

配置多实例

1.安装软件

具体操作:

解压软件、修改目录名、修改path路径

如果在已有数据库服务的机器上运行多实例,先查看数据库服务的版本是否支持多实例,如果不支持需要停掉服务,安装能支持多实例的数据库版本

接下来安装提供多实例服务的软件

下面演示的版本为mysql5.7.36,使用二进制安装,其余安装方式请看mysql的安装方式

?
1 2 3 4 groupadd -r -g 306 mysql useradd -g 306 -r -u 306 mysql tar -zxvf mysql-5.7.36-linux-glibc2.12-x86-64.tar.gz mv /root/mysql-5.7.36-linux-glibc2.12-x86_64 /usr/ local /mysql

2.配置文件

主配置文件/etc/my.cnf

  • 每个实例要有独立:数据库目录、端口
  • socket文件、pid文件、错误日志文件
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 vim /etc/my.cnf [mysqld_multi]       #启动多实例 mysqld     = /usr/ local /mysql/bin/mysqld_safe   #指定进程文件路径 mysqladmin = /usr/ local /mysql/bin/mysqladmin    #指定管理命令路径 user       = root    #指定进程用户 #pass       = mysql@123  #可以不指定密码,在初始化的时候也会出现密码   [mysqld3306]     #实例进程名称,3306是服务编号 socket     = /tmp/mysql.sock1   #指定sock文件的路径和名称 port       = 3306    #指定端口 pid-file   = /data/3306/mysqld.pid   #进程文件pid号文件按位置 datadir    = /data/3306     #数据库目录,最好提前创建 log-error  = /data/3306/mysqld.log    #错误日志位置   [mysqld3307] socket     = /tmp/mysql.sock2 port       = 3307 pid-file   = /data/3307/mysqld.pid datadir    = /data/3307 log-error  = /data/3307/mysqld.log   mkdir -p /data/330{6..7} chown -r mysql:mysql /data/330{6,7}

socket文件:自己访问自己的数据库服务时,通过socket文件传递参数

3.启动服务

管理多实例

  • 启动服务

mysqld_multi start 实例编号 #启动服务

  • 停止服务

mysqld_multi --user=root --password=密码 stop 实例编号

?
1 2 3 4 5 6 7 8 9 10 11 12 /usr/ local /mysql/bin/mysqld_multi start 3306   #首次启动初始化 #也可以使用这个命令来初始化 /usr/ local /mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307 #用这个命令初始化之后还需要在使用启动服务 /usr/ local /mysql/bin/mysqld_multi start 3307 输入绝对路径太麻烦,可以写入环境变量 vim /etc/ export path=$path:/usr/ local /mysql/bin/   source /etc/profile.d/mysql.sh #然后就可以写短指令 mysqld_multi start 3307

4.查看服务状态

?
1 2 ss -nultp | grep 3306 ss -nultp | grep 3307

5.使用初始密码连接服务

客户端访问

本机连接

使用初始密码连接

修改本机登录密码

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 #mysql -uroot -p '初始密码' -s sock文件 #mysql> alter user root@ "localhost" identified by "新密码" ; #连接第一个数据库实例测试 /usr/ local /mysql/bin/mysql -uroot -p '' -s /tmp/mysql.sock1 show databases; alter user root@ "localhost" identified by "123456" ; show databases; exit #连接第二个数据库实例测试 mysql -uroot -p '' -s /tmp/mysql.sock2 show databases; alter user root@ "localhost" identified by "123456" ; show databases; exit


使用新密码再次登录验证

6.停止多实例

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

到此这篇关于mysql多实例的配置应用实例场景的文章就介绍到这了,更多相关mysql多实例内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/hahaxixi131/article/details/122137583

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容