MySQL多实例管理(centOS中二进制安装MySQL)

这篇具有很好参考价值的文章主要介绍了MySQL多实例管理(centOS中二进制安装MySQL)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

多实例的好处

数据库实例1,目录是
/my_mysql/3306/
/my_mysql/3306/data
/my_mysql/3306/my.cnf
/my_mysql/3306/mysqld

数据库实例3,目录是
/my_mysql/3307/
/my_mysql/3307/data
/my_mysql/3307/my.cnf
/my_mysql/3307/mysqld

不同的应用程序,读取不同的mysql实例

部署MySQL多实例

基于一个MySQL应用
初始化3次,生成3个独立的MySQL数据目录,即为三个MySQL独立的实力

如何准备MySQL应用

二进制方式安装MySQL

一、二进制方式安装MySQL

1. 获取二进制代码包
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz

2.安装MySQL运行所需的基础依赖
yum install ncurses-devel libaio-devel gcc make cmake -y

3.清空之前编译安装MySQL,配置的环境的清理
清空PATH有关的MySQL

[root@centOS78 ~]# echo $PATH
/application/mysql-5.6.40-linux-glibc2.12-x86_64/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin


4.停止当前Linux的MySQL(若是存在MySQL端口的话)
[root@centOS78 ~]# /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!

5.创建MySQL用户
[root@centOS78 ~]# id mysql
uid=27(mysql) gid=27(mysql) groups=27(mysql)

6.准备好MySQL多实例的数据目录
[root@centOS78 ~]# mkdir -p /my_mysql/{3306,3307}
[root@centOS78 ~]# tree /my_mysql/
/my_mysql/
├── 3306
└── 3307
2 directories, 0 files


7.解压缩进二进制的MySQL软件包
 注意:-C  指定目录压缩
 [root@centOS78 ~]# tar -zxvf mysql-5.6.40-linuxglibc2.12-x86_64.tar.gz -C /application/



8.解压缩最后一步,查看MySQL的安装包信息
[root@centOS78 ~]#  cd /application/
[root@centOS78 ~]# ls -lth
total 0


9.刚才解压缩的二进制MySQL暗转目录

drwxr-xr-x 13 root root 191 May 12 14:59 mysql-5.6.40-linuxglibc2.12-x86_64

一个简单的软连接
lrwxrwxrwx 1 root root 26 May 9 15:49 mysql ->/application/mysql-5.6.40/

二、准备二进制MySQL运行所需的环境

1.准备MySQL多实例的,各个配置文件
	3306
	3307
2.准备各个启停管理脚本
3.数据初始化,生成MySQL的初始化data数据

三、准备多个实例的配置文件

1.实例1:3306的配置文件
[root@centOS78 ~]# vim /my_mysql/3306/my.cnf

[client]

[mysqld]

port=3306
socket=/my_mysql/3306/mysql.sock
basedir=/application/mysql-5.6.40-linux-glibc2.12-x86_64/
datadir=/my_mysql/3306/data
log-bin=/my_mysql/3306/mysql-bin
server-id=1

[mysqld_safe]
log-error=/my_mysql/3306/mysql_3306_error.log
pid-file=/my_mysql/3306/mysqld_3306.pid


2.实例2:3307的配置文件
[root@centOS78 ~]# vim /my_mysql/3307/my.cnf

[client]

[mysqld]
port=3307
socket=/my_mysql/3307/mysql.sock
basedir=/application/mysql-5.6.40-linux-glibc2.12-x86_64/
datadir=/my_mysql/3307/data
log-bin=/my_mysql/3307/mysql-bin
server-id=2


[mysqld_safe]
log-error=/my_mysql/3307/mysql_3307_error.log
pid-file=/my_mysql/3307/mysqld_3307.pid

四、3306 3307的启停脚本

注意:3306和3307这2个实例,配置文件也得区别开

1.在3306下配置mysql_3306
[root@centOS78 3306]# vim mysql_3306
port=3306
mysql_user="mysql"
Cmdpath="/application/mysql-5.6.40-linux-glibc2.12-x86_64/bin/"
mysql_sock="/my_mysql/${port}/mysql.sock"
mysqld_pid_file_path=/my_mysql/${port}/mysqld_${port}.pid
start(){
if [ ! -e "$mysql_sock" ];then
 printf "Starting MySQL...\n"
 /bin/sh ${Cmdpath}/mysqld_safe --defaults-file=/my_mysql/${port}/my.cnf --pid-file=$mysqld_pid_file_path 2>&1 > /dev/null &
 sleep 3
else
 printf "MySQL is running...\n"
 exit 1
fi
}
stop(){
 if [ ! -e "$mysql_sock" ];then
 printf "MySQL is stopped...\n"
 exit 1
 else
 printf "Stoping MySQL...\n"
 mysqld_pid=`cat "$mysqld_pid_file_path"`
 if (kill -0 $mysqld_pid 2>/dev/null)
 then
 kill $mysqld_pid
 sleep 2
 fi
 fi
}
restart(){
 printf "Restarting MySQL...\n"
 stop
 sleep 2
 start
}
case "$1" in
start)
 start
;;
stop)
 stop
;;
restart)
 restart
;;
*)
 printf "Usage: /data/${port}/mysql{start|stop|restart}\n"
esac

注意:
	赋予可执行权限
	[root@centOS78 3306]# chmod +x mysql_3306


2.在3307下配置mysql_3307
[root@centOS78 3307]# vim mysql_3307
port=3307
mysql_user="mysql"
Cmdpath="/application/mysql-5.6.40-linux-glibc2.12-x86_64/bin/"
mysql_sock="/my_mysql/${port}/mysql.sock"
mysqld_pid_file_path=/my_mysql/${port}/mysqld_${port}.pid
start(){
if [ ! -e "$mysql_sock" ];then
 printf "Starting MySQL...\n"
 /bin/sh ${Cmdpath}/mysqld_safe --defaults-file=/my_mysql/${port}/my.cnf --pid-file=$mysqld_pid_file_path 2>&1 > /dev/null &
 sleep 3
else
 printf "MySQL is running...\n"
 exit 1
fi
}
stop(){
 if [ ! -e "$mysql_sock" ];then
 printf "MySQL is stopped...\n"
 exit 1
 else
 printf "Stoping MySQL...\n"
 mysqld_pid=`cat "$mysqld_pid_file_path"`
 if (kill -0 $mysqld_pid 2>/dev/null)
 then
 kill $mysqld_pid
 sleep 2
 fi
 fi
}
restart(){
 printf "Restarting MySQL...\n"
 stop
 sleep 2
 start
}
case "$1" in
start)
 start
;;
stop)
 stop
;;
restart)
 restart
;;
*)
 printf "Usage: /data/${port}/mysql{start|stop|restart}\n"
esac


注意:
	赋予可执行权限
	[root@centOS78 3307]# chmod +x mysql_3307

五、降低权限,全部赋予给MySQL

[root@centOS78 3307]# chown -R mysql.mysql /my_mysql/

六、PATH配置

root@centOS78 ~]# tail -1 /etc/profile
export PATH=/application/mysql-5.6.40-linux-glibc2.12-x86_64/bin/:$PATH


root@centOS78 ~]# echo $PATH
/application/mysql-5.6.40-linux-glibc2.12-x86_64/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin


root@centOS78 ~]# which mysql
/application/mysql-5.6.40-linux-glibc2.12-x86_64/bin/mysql

七、创建多个实例对应的数据目录

分别创建 3306 3307
2个目录的数据目录

root@centOS78 ~]# mkdir -p /my_mysql/3306/data
root@centOS78 ~]# mkdir -p /my_mysql/3307/data

root@centOS78 ~]# tree /my_mysql/
/my_mysql/
├── 3306
│ ├── data
│ ├── my.cnf
│ └── mysql_3306
└── 3307
 ├── data
 ├── my.cnf

八、见证MySQL的多实例初始化

1.初始化3306的数据

此时3306的data文件夹是空的,没有数据
root@centOS78 ~]#  ls /my_mysql/3306/data/

执行初始化,生成MySQL运行所需的初始化数据
/application/mysql-5.6.40-linux-glibc2.12-x86_64/scripts/mysql_install_db --defaults-file=/my_mysql/3306/my.cnf --basedir=/application/mysql-5.6.40-linux-glibc2.12-x86_64/ --datadir=/my_mysql/3306/data/ --user=mysql

注意:
	出现两个OK后表示正常
	
此时会正确生成MySQL的初始数据
root@centOS78 ~]# ls -l /my_mysql/3306/data/
total 110604
-rw-rw---- 1 mysql mysql       56 Aug 27 20:47 auto.cnf
-rw-rw---- 1 mysql mysql 12582912 Aug 27 21:44 ibdata1
-rw-rw---- 1 mysql mysql 50331648 Aug 27 21:44 ib_logfile0
-rw-rw---- 1 mysql mysql 50331648 Aug 27 19:50 ib_logfile1
drwx------ 2 mysql mysql       20 Aug 27 21:15 lin1
drwx------ 2 mysql mysql     4096 Aug 27 19:50 mysql
drwx------ 2 mysql mysql     4096 Aug 27 20:29 performance_schema
drwx------ 2 mysql mysql        6 Aug 27 19:50 test

2.初始化3307的数据

此时3306的data文件夹是空的,没有数据
root@centOS78 ~]#  ls /my_mysql/3307/data/

执行初始化,生成MySQL运行所需的初始化数据
/application/mysql-5.6.40-linux-glibc2.12-x86_64/scripts/mysql_install_db --defaults-file=/my_mysql/3307/my.cnf --basedir=/application/mysql-5.6.40-linux-glibc2.12-x86_64/ --datadir=/my_mysql/3307/data/ --user=mysql

注意:
	出现两个OK后表示正常
	
此时会正确生成MySQL的初始数据
root@centOS78 ~]# ls -l /my_mysql/3307/data/
total 110604
-rw-rw---- 1 mysql mysql       56 Aug 27 20:48 auto.cnf
-rw-rw---- 1 mysql mysql 12582912 Aug 27 21:47 ibdata1
-rw-rw---- 1 mysql mysql 50331648 Aug 27 21:47 ib_logfile0
-rw-rw---- 1 mysql mysql 50331648 Aug 27 19:50 ib_logfile1
drwx------ 2 mysql mysql     4096 Aug 27 19:50 mysql
drwx------ 2 mysql mysql     4096 Aug 27 20:30 performance_schema
drwx------ 2 mysql mysql        6 Aug 27 19:50 test

3.创建MySQL的错误日志文件

root@centOS78 ~]# touch /my_mysql/3306/mysql_3306_error.log
root@centOS78 ~]# touch /my_mysql/3307/mysql_3307_error.log

注意:
	再次对整个目录授权
root@centOS78 ~]# chown -R mysql.mysql /my_mysql/

九、分别启动MySQL多实例

1.启动3306数据库

确保当前没有其他MySQL

root@centOS78 ~]#  netstat -tunlp |grep mysql

root@centOS78 ~]#  /my_mysql/3306/mysql_3306
Usage: /data/3306/mysql{start|stop|restart}
root@centOS78 ~]#  /my_mysql/3306/mysql_3306 start
MySQL is running...


用如下命令登录,使用sock套接字文件登录
root@centOS78 ~]#  mysql -S /my_mysql/3307/mysql.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.40-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All
rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or
its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current
input statement.
mysql>
mysql>
mysql>
mysql>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> show databases;

2.启动3307数据库

确保当前没有其他MySQL

root@centOS78 ~]#  netstat -tunlp |grep mysql

root@centOS78 ~]#  /my_mysql/3307/mysql_3307
Usage: /data/3307/mysql{start|stop|restart}
root@centOS78 ~]#  /my_mysql/3307/mysql_3307 start
MySQL is running...


用如下命令登录,使用sock套接字文件登录
root@centOS78 ~]#  mysql -S /my_mysql/3307/mysql.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.40-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All
rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or
its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current
input statement.
mysql>
mysql>
mysql>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> show databases;

文章来源地址https://www.toymoban.com/news/detail-679265.html

到了这里,关于MySQL多实例管理(centOS中二进制安装MySQL)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL三种安装方法(yum安装、编译安装、二进制安装)

    切记:一定要关闭防火墙和selinux!!! 服务器配置:2C4G即可,一台 mysql的官方网站:www.mysql.com 中文官网:https://www.mysql.com/cn/ 1、下载mysql的yum源 2、安装mysql的yum仓库 3、配置yum源 4、安装数据库 5、查找密码 6、修改密码 两种方式: 第一种:登录数据库后操作 第二种:免入

    2024年02月07日
    浏览(37)
  • MySQL8.0.33二进制包安装与部署

    2024年02月13日
    浏览(38)
  • 第77讲:二进制方式搭建MySQL数据库5.7版本以及错误日志管理

    前面是使用的yum的方式安装的MySQL数据库,在企业生产环境中大多数都用二进制方式安装。 本次使用二进制方式搭建MySQL 5.7.36版本。 1.1.下载MySQL5.7版本的二进制文件 1.2.创建mysql用户管理MySQL服务

    2024年02月03日
    浏览(42)
  • linux第三阶段--第三方软件(一)MySQL的概述和二进制安装(官网版)

    DB2 POSTGRE-SQL RDBMS(relational database management system),既关系型数据库管理系统。 简单来说,关系型数据库,是指采用了 二维表格 来组织数据的数据库。 扩展:数据库在行业内一般会有两种情况,关系型数据库与非关系型数据库。非关系型数据库并不是通过二维表格来维护数

    2024年02月12日
    浏览(33)
  • MySQL运维15-二进制日志

    二进制日志包含了所有更新了数据或已经潜在更新了数据的语句及执行时间。语句以“事件”(event)的形式保存,它描述了数据的更改信息。 二进制日志不包含没有修改任何数据的语句。如果想要记录所有的语句(例如,为了识别有问题的查询),应该使用通用日志。 用于

    2023年04月18日
    浏览(40)
  • 开启MySQL二进制日志(binlog)

    前言 binlog即二进制日志 Binary Log,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。一般来说开启二进制日志大概会有一定的性能损耗。 二进制日志有两个最重要的使用场景: Mysql主从复制

    2023年04月09日
    浏览(43)
  • MySQL 日志之二进制日志-binlog

    1、简介         MySQL 的二进制日志记录了对 MySQL 所有的更改操作,不包括 select 和 show 等操作。二进制日志文件主要有:数据恢复、主从复制、审计(判断是否有注入攻击)等作用。 2、二进制日志参数配置 2.1、文件参数配置         linux 中 MySQL的配置文件在 /etc/my.cnf,通

    2024年01月21日
    浏览(48)
  • mysql三大日志—— 二进制日志binlog

    binlog用于记录数据库执行的写入性操作,是一种 逻辑日志 ,binlog 处于服务层 ,通过 追加写入 的方式以二进制的形式保存在磁盘中。 binlog主要用于 主从复制 和数据恢复。 主从复制:在主机端开启binlog日志管理,主机将binlog日志发送到各个从机,从机来读取binlog文件来做到

    2024年02月13日
    浏览(34)
  • mysql二进制方式升级8.0.34

    mysql8.0.33 存在如下高危漏洞,需要通过升级版本修复漏洞 Oracle MySQL Cluster 安全漏洞(CVE-2023-0361) mysql/8.0.33  Apache Skywalking =8.3 SQL注入漏洞   复制如下浏览器 https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.34-linux-glibc2.12-x86_64.tar.xz 下载这个安装包 mysql-8.0.34-linux-glibc2.12-x86_64.tar.xz

    2024年02月13日
    浏览(33)
  • 实现:mysql-5.7.42 到 mysql-8.2.0 的升级(二进制方式)

    💖The Begin💖点点关注,收藏不迷路💖 注:本文在测试环境升级测试,建议先在测试环境验证。在生产环境下还是先评估下,mysql-5.7.42为二进制方式安装,所以用mysql-8.2.0二进制包升级 否则后面升级完成后,启动mysql会报错: 报错如下: 错误表明在启动MySQL服务时出现了一些

    2024年03月23日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包