Mysql-5.6 二进制多实例部署

发布时间:2022-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Mysql-5.6 二进制多实例部署脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

目录
  • 一.简介
  • 二.环境声明
  • 三.程序部署

一.简介

MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务:

特点:

  1. 有效利用服务器资源,当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务。
  2. 节约服务器资源
  3. 资源互相抢占问题,当某个服务实例服务并发很高时或者开启慢查询时,会消耗更多的内存、CPU、磁盘IO资源,导致服务器上的其他实例提供服务的质量下降;

部署方式: 第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便

第二种是通过官方自带的mysqld_multi使用单独的配置文件来实现多实例,这种方式定制每个实例的配置不太方面,优点是管理起来很方便,集中管理

同一开发环境下安装两个数据库,必须处理以下问题

  • 配置文件安装路径不能相同
  • 数据库目录不能相同
  • 启动脚本不能同名
  • 端口不能相同
  • socket文件的生成路径不能相同

二.环境声明

1.环境

[mysql-Server]
    主机名 = host-1
    系统 = centos-7.3
    地址 = 1.1.1.1
    软件 = mysql-5.6.39 3306

三.程序部署

1.安装依赖 yum -y install autoconf libaio bison ncurses-devel

2.创建用户 groupadd mysql useradd -g mysql -s /sbin/nologin mysql

3.清理centos7 默认自带数据库 yum -y remove mariadb mariadb-server

4.下载 wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

tar -xf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql

创建相关目录,确保区分开 mkdir -p /data/mysql/{mysql_3306,mysql_3307} mkdir /data/mysql/mysql_3306/{data,log,tmp} mkdir /data/mysql/mysql_3307/{data,log,tmp}

mysql即使root启动还是mysql用户运行的,所以要给权限 chown -R mysql:mysql /usr/local/mysql chown -R mysql:mysql /data/mysql

5.添加环境变量 echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile source /etc/profile

6.复制my.cnf文件到etc目录 rm -rf /etc/my.cnf cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

修改my.cnf(在一个文件中修改即可) vim /etc/my.cnf

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld_multi] #一定要配置的,管理多实例
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /data/mysql/mysqld_multi.log

[mysqld] #服务端公用配置
user=mysql
basedir = /usr/local/mysql
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld3306] #3306实例的私有配置
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/data/mysql/mysql_3306/data
port=3306
server_id=3306
socket=/tmp/mysql_3306.sock
log-output=file
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/mysql_3306/log/slow.log
log-error = /data/mysql/mysql_3306/log/error.log
binlog_format = mixed
log-bin = /data/mysql/mysql_3306/log/mysql3306_bin

[mysqld3307] #3307私有配置
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/data/mysql/mysql_3307/data
port=3307
server_id=3307
socket=/tmp/mysql_3307.sock
log-output=file
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/mysql_3307/log/slow.log
log-error = /data/mysql/mysql_3307/log/error.log
binlog_format = mixed
log-bin = /data/mysql/mysql_3307/log/mysql3307_bin

7.初始化数据库

初始化3306数据库 /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql_3306/data --defaults-file=/etc/my.cnf

初始化3307数据库 /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql_3307/data --defaults-file=/etc/my.cnf

检查数据库是否初始化成功 出现两个”OK”

Mysql-5.6 二进制多实例部署

8.设置启动文件 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

9.mysqld_multi进行多实例管理 启动全部实例:/usr/local/mysql/bin/mysqld_multi start

查看全部实例状态:/usr/local/mysql/bin/mysqld_multi report

启动单个实例:/usr/local/mysql/bin/mysqld_multi start 3306

停止单个实例:/usr/local/mysql/bin/mysqld_multi stop 3306

查看单个实例状态:/usr/local/mysql/bin/mysqld_multi report 3306

10.启动全部实例 /usr/local/mysql/bin/mysqld_multi start /usr/local/mysql/bin/mysqld_multi report

11.配置密码 mysql的root用户初始密码是空,所以需要登录mysql进行修改密码,下面以3306为例:

登陆,也可以正常的加端口用ip登陆 mysql -S /tmp/mysql_3306.sock set password for root@'localhost'=password('123456'); flush privileges;

脚本宝典总结

以上是脚本宝典为你收集整理的Mysql-5.6 二进制多实例部署全部内容,希望文章能够帮你解决Mysql-5.6 二进制多实例部署所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。