mysql架构篇之多实例

概念了解

什么是多实例?

  在一台物理主机上允许多个数据库服务

为什么要使用多实例

  节约成本

  提高硬件利用率

由于此服务于版本有关,此次选择了mysql-5.7.20版本的数据库

mysql-5.7.20

  55  yum -y install libaio  
          安装环境包
56 useradd mysql
          创建一个mysql用户   
58 mv mysql-5.7.20-linux-glibc2.12-x86_64/ /usr/local/mysql
          将目录内的东西移动到/usr/local/mysql目录下
59 PATH=/usr/local/mysql/bin:$PATH
          配置环境变量
61 vim /etc/bashrc
    PATH=/usr/local/mysql/bin:$PATH
      在文件中添加环境变量

主配置文件:

  因是实例,所有每个实例都要有独立的:数据库目录、端口、socket文件、pid文件、错误日志文件

/etc/my.cnf    //如若存在这个文件,直接删掉。然后重新创建即可
[mysqld_multi]            //启用多实例 mysqld
=/usr/local/mysql/bin/mysqld_safe  //指定进程文件路径 mysqladmin=/usr/local/mysql/bin/mysqladmin  //指定管理命令路径 user=root                      //指定进程用户 [mysql1]          //实例京城名称 port = 3307        //端口号 datadir = /dir1      //数据库主目录,需自己创建 socket = /dir1/mysql.sock    //指定sock文件的路径和名称 pid-file = /dir1/mysqld.pid    //进程pid号文件位置 log-error = /dir1/mysqld.err    //错误日志位置 [mysql2] port = 3308 datadir = /dir2 socket = /dir2/mysql.sock pid-file = /dir2/mysqld.pid log-error = /dir2/mysqld.err

 

 

管理多实例

 

停止服务(首次启动服务会创建root登陆初始密码)

  mysqld_multi  start  1    //启动实例编号

停止服务

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

 

mysql服务自己连接自己的时候,通过socket文件建立连接
启动mysqld服务时 会自动创建socket文件,停止mysqld服务时,会自动删除文件

[root@host58 ~]# mysqld_multi start 1    //所以要认为的启动停止的服务

如若修好坏掉的服务器后,先停止管理服务

再管理服务文件内写入修复的实例服务器即可

]#

再添加实例使其运行并存储数据
在主配置文件里添加如下内容

]# vim /etc/my.cnf
[mysqld3]
datadir=/dir3
port=3309
log-error=/dir3/mysqld3.err
pid-file=/dir3/mysqld3.pid
socket=/dir3/mysqld3.sock

 

 

 

实例启动失败的配置步骤:
  1 检查/etc/my.cnf文件中 实例配置
  2 pkill -9 mysqld
  3 rm -rf 实例对应的数据库目录
  4 再次执行启动实例的命令 mysqld_multi start 实例编号

 

posted @ 2021-04-24 16:12  樱花泪  阅读(110)  评论(0)    收藏  举报