一台服务器部署两个独立的mysql实例

🍁博主简介
        🏅云计算领域优质创作者
        🏅2022年CSDN新星计划python赛道第一名

        🏅2022年CSDN原力计划优质作者
        🏅阿里云ACE认证高级工程师
        🏅阿里云开发者社区专家博主

💊交流社区:CSDN云计算交流社区欢迎您的加入!

目录

1 背景

2 安装MySQL

2 进行mysql安装

3 配置搭建3306、3307实例

4 设置mysql系统环境变量

5 分别初始化两个mysql数据库:

6 登录两个mysql

6 扩展

  👑👑👑结束语👑👑👑​


1 背景

公司进行压测和业务测试时候资源有限,两个环境都部署在一台服务器上,但是需要为了做业务测试不影响到压测测试,所有业务测试调用数据库要和压测的库分开。

这个时候就需要在这台服务器上部署两个mysql实例,然后分别有不同的配置文件,调用不同的数据文件。这样顶多需要考虑服务器的性能问题而已,两组测试互不干扰。

2 安装MySQL

先看看是否已安装过(自带),如果已安装过,先卸载干净;然后检查安装环境是否支持,重新安装;

# 先查找一下系统有没有mysql包,以免影响后续安装使用
[root@xiaopeng ~]# rpm -qa | grep mysql     #没有输出任何内容说明没有mysql包
[root@xiaopeng ~]# rpm -qa | grep mariadb   #我的系统输出了如下两个包,那么就需要清理掉
mariadb-libs-5.5.68-1.el7.x86_64
mariadb-5.5.68-1.el7.x86_64
[root@xiaopeng ~]# rpm -e  mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
[root@xiaopeng ~]# rpm -e  mariadb-5.5.68-1.el7.x86_64 --nodeps
[root@xiaopeng ~]# rpm -qa | grep mariadb   #删除之后再查看就没有任何mariadb的包了
[root@xiaopeng ~]#
[root@xiaopeng ~]# chmod -R 755 /tmp        # 增加文件操作权限,安装MySQL后MySQL会用户在/tmp目录下新建tmp_db文件,需要给/tmp目录较大的权限操作
​
# 检查系统中是否存在一些安装MySQL时需要的依赖库
[root@xiaopeng ~]# rpm -qa|grep libaio      #我的系统检查发现有libaio依赖包
libaio-0.3.109-13.el7.x86_64
[root@xiaopeng ~]# rpm -qa|grep net-tools   #我的系统检查发现有net-tools依赖包(就是netstat命令)
net-tools-2.0-0.25.20131004git.el7.x86_64
# 如果不存在则执行yum -y install libaio net-tools安装即可 

2 进行mysql安装

# 首先创建mysql用户和用户组
[root@xiaopeng ~]# groupadd mysql       #创建一个组,组名叫mysql
[root@xiaopeng ~]# useradd -r -g mysql -s /bin/false mysql  # 创建一个名为mysql的系统用户,该用户属于mysql组,但不能登录系统。主要用来安装和配置MySQL数据库服务时使用。 
[root@xiaopeng ~]# cd /usr/local/       #进入安装目录
[root@xiaopeng local]# rz
# rz命令可以将windows的包上传到linux的当前目前
#如果没有这个命令的话执行yum -y install lrzsz就能安装上这个命令了

进行解压缩

[root@xiaopeng local]# tar -zxf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz  #解压缩这个包
[root@xiaopeng local]# mv mysql-5.7.35-linux-glibc2.12-x86_64 mysql         #改名叫mysql

mysql服务安装完毕

3 配置搭建3306、3307实例

创建3306、3307不同实例的数据存放路径和配置等文件存放位置。

# 分别创建数据文件存放路径
[root@xiaopeng local]# mkdir -p mysql/3306/data
[root@xiaopeng local]# mkdir -p mysql/3307/data
​
# 分别创建日志存放路径
[root@xiaopeng local]# mkdir -p mysql/3306/log
[root@xiaopeng local]# mkdir -p mysql/3307/log
​
# 分别创建两个mysql的配置文件
[root@xiaopeng local]# vim mysql/3306/my.cnf
[mysqld]
port=3306               #实例1的服务端口为3306
user=mysql              #用户名mysql
basedir=/usr/local/mysql        #mysql服务安装路径
datadir=/usr/local/mysql/3306/data  #实例1的数据存放路径
lower_case_table_names=1
innodb_buffer_pool_size=128M
socket=/tmp/mysql_3306.sock     #sock文件最后放在此目录下,否则连接mysql的时候还需要--socket=路径来指定sock文件的位置,很麻烦
explicit_defaults_for_timestamp=true
symbolic-links=0
log-error=/usr/local/mysql/3306/log/mysqld.log
pid-file=/usr/local/mysql/3306/run/mysqld.pid
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
​
[root@xiaopeng local]# vim mysql/3307/my.cnf
[mysqld]
port=3307                               #实例1的服务端口为3307
user=mysql                              #用户名mysql
basedir=/usr/local/mysql                #mysql服务安装路径
datadir=/usr/local/mysql/3307/data      #实例1的数据存放路径
lower_case_table_names=1
innodb_buffer_pool_size=128M
socket=/tmp/mysql_3307.sock             #sock文件最后放在此目录下,否则连接mysql的时候还需要--socket=路径来指定sock文件的位置,很麻烦
explicit_defaults_for_timestamp=true
symbolic-links=0
log-error=/usr/local/mysql/3307/log/mysqld.log
pid-file=/usr/local/mysql/3307/run/mysqld.pid
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
​
# 修改整个目录及子文件的所有者所属组为mysql
[root@xiaopeng local]# chown -R mysql:mysql /usr/local/mysql
[root@xiaopeng local]# ll 
[root@xiaopeng local]# cd mysql
[root@xiaopeng mysql]# tree 3306                #想用tree命令查看一下目录结构,显示没有这个命令
-bash: tree: 未找到命令
[root@xiaopeng mysql]# yum -y install tree       #那就下载一个
[root@xiaopeng mysql]# tree 3306                #再查看一下就显示了,配置文件和数据存放目录都完全隔离了
3306
├── data
└── my.cnf
[root@xiaopeng mysql]# tree 3307
3307
├── data
└── my.cnf

4 设置mysql系统环境变量

# 设置系统环境变量
[root@xiaopeng mysql]# vim /etc/profile         # 在文件末尾添加下面信息
export PATH=/usr/local/mysql/bin:$PATH
​
[root@xiaopeng mysql]# source /etc/profile      #加载一下使环境变量生效

5 分别初始化两个mysql数据库:

# 初始化3306实例数据库  
# 指定配置文件的位置、安装目录、数据存放路径
# 注意,初始化结束的最后一行记录了root的密码,复制到记事本
[root@xiaopeng mysql]# /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/3306/my.cnf --initialize --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/3306/data
​
[root@xiaopeng mysql]# /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/3306/my.cnf --initialize --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/3307/data
​
# 启动数据库实例3306、3307并放入后台
[root@xiaopeng mysql]# nohup /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/3306/my.cnf --user=mysql &
[root@xiaopeng mysql]# nohup /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/3307/my.cnf --user=mysql &

6 登录两个mysql

[root@xiaopeng mysql]# mysql -uroot -p'7VSb@4FUd^28U2KL' -h127.0.0.1 -p -P3306      
#3VSb@4FUd^28U2KL为初始化结束后复制的密码
[root@xiaopeng mysql]# mysql -uroot -p'9dTJylD*4s2ARdtx' -h127.0.0.1 -p -P3307      
#9dTJylD*4s2ARdtx为初始化结束后复制的密码

6 扩展

1、如果要修改root密码,使用如下命令

# 先登录到mysql中,然后执行如下命令
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');
# 一定要注意括号引号分号等符号是英文格式的

2、如果sock文件放在了其他目录下

mysql -uroot -p'密码' -h 127.0.0.1 --socket=/usr/local/data/mysql/tmp/mysql.sock --port=3306
# --socket=后面跟上sock文件的绝对路径
​
# 备份3306中的xiaopenglinux数据库
mysqldump -uroot -p'密码'  xiaopenglinux  > /usr/local/data/mysql/mysqlBackups/xiaopenglinux.sql --socket=/usr/local/data/mysql/tmp/mysql.sock --port=3306
​
# 还原xiaopenglinux数据库到3307数据库中
mysql -uroot -p'密码' < xiaopenglinux.sql --socket=/usr/local/data/mysql/tmp/mysql.sock --port=3307

3、创建普通用户并赋予权限

create user lark_test@'%' identified by '0dAJylD*a3C8Rdtx';
show grants for "username"@"localhost";
# username  用户名
# localhost 用户的本地权限
show grants for "username"@"%";
# %         代表用户的外部连接权限
​
#   ALL: 允许进行任何操作(拥有root权限)
#   USAGE: 只允许登录--无其他任何权限(一般新创建的用户是没有任何权限的)
grant all privileges on *.* to '用户'@'127.0.0.1' identified by '密码';
# 赋予新用户,从本地操作所有数据库,所有数据表的所有权限
grant all privileges on *.* to 'chai'@'%' identified by '666666';
# 赋予新用户,从外部操作所有数据库,所有数据表的所有权限(没有外部客户端的IP限制,但本地有限制)
​
flush privileges;
#刷新权限,使权限立即生效

  👑👑👑结束语👑👑👑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/743065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】string进一步介绍

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 前言2. 迭代器2.1 反向迭代器2.2 const对象迭代器 3. Capacity3.1 size和length3.2 max_size3.3 capacity3.4 clear3.5 shrink_to_fit &#xff08;了解即可&#xff09;3.6 reserve3.7 resize 4. Element access4…

离线数仓(七)【DIM 层开发】

前言 今天开始 DIM 层的开发&#xff0c;说开发好像有点不配&#xff0c;还只是学习阶段&#xff0c;离开发还有很长的路要走。 一个人想象自己不懂得的事很容易浪漫。 --《沉默的大多数》王小波 1、DIM 层开发 DIM层设计要点&#xff1a; DI…

海豚调度系列之:任务类型——Apache SeaTunnel

海豚调度系列之&#xff1a;任务类型——Apache SeaTunnel 一、Apache SeaTunnel二、创建任务三、任务参数四、任务样例1.在 DolphinScheduler 中配置 SeaTunnel 环境2.配置 SeaTunnel 任务节点 一、Apache SeaTunnel SeaTunnel 任务类型&#xff0c;用于创建并执行 SeaTunnel…

【LeetCode热题100】240. 搜索二维矩阵 II

一.题目要求 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。 ‘每列的元素从上到下升序排列。 二.题目难度 中等 三.输入样例 示例 1&#xff1a; 输入&#xff1a;matrix [[1,4,7…

Web-based DBMS Technology 线上数据库

Example Online Databases • https://www.planespotters.net/ • https://www.comics.org/ • https://www.quandl.com/ • https://www.enigma.com/ • https://www.sportradar.com/ Basics of WWW • The Web is a very large client-server system — Connected through r…

AI日报:一个新的“科技超级周期”正在出现

文章目录 技术周期预测可连接设备 技术周期 未来学家艾米韦伯表示&#xff0c;人工智能和其他两种通用技术将迎来一个新的“技术超级周期”&#xff0c;预计将在经济中创造“实质性和持续性”的变化。 她在SXSW 2024上表示&#xff0c;过去的科技超级周期是由通用技术引发的&…

HTTP压测工具wrk安装与使用

一、前言 wrk是一个基于C语言开发的用于HTTP性能测试的开源工具&#xff0c;它可以模拟多个并发连接&#xff0c;测量服务器的响应时间和吞吐量&#xff0c;并且会给出较为全面的测试结果 1、本文主要内容 在Windows、macOS、Linux&#xff08;CentOS & Ubuntu等&#xff…

任务弹窗更新为任务对话框

1.设计初心 在玩家接取任务/交付任务时&#xff0c;界面弹出的UI &#xff0c;需要与玩家互动&#xff0c;点击“接取”“完成”。等等字样【改动前】频繁的手动点击会中断玩家跑图的流畅性&#xff0c;也降低了任务寻路系统的实际体验。于是现在变成类似FakeObj 对话框的模式…

数字逻辑-时序逻辑电路一

一、实验目的 &#xff08;1&#xff09;熟悉触发器的逻辑功能及特性。 &#xff08;2&#xff09;掌握集成D和JK触发器的应用。 &#xff08;3&#xff09;掌握时序逻辑电路的分析和设计方法。 二、实验仪器及材料 三、实验内容及步骤 1、用D触发器&#xff08;74LS74&am…

idea Springboot 组卷管理系统LayUI框架开发mysql数据库web结构java编程计算机网页

一、源码特点 springboot 组卷管理系统是一套完善的完整信息系统&#xff0c;结合mvc框架和LayUI框架完成本系统springboot spring mybatis &#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整…

ES6(三):Iterator、Generator、类的用法、类的继承

一、迭代器Iterator 迭代器是访问数据的一个接口&#xff0c;是用于遍历数据结构的一个指针&#xff0c;迭代器就是遍历器 const items[one,two,three];//创建新的迭代器const ititems[Symbol.iterator]();console.log(it.next()); done&#xff1a;返回false表示遍历继续&a…

Python 查找PDF中的指定文本并高亮显示

在处理大量PDF文档时&#xff0c;有时我们需要快速找到特定的文本信息。本文将提供以下三个Python示例来帮助你在PDF文件中快速查找并高亮指定的文本。 查找并高亮PDF中所有的指定文本查找并高亮PDF某个区域内的指定文本使用正则表达式搜索指定文本并高亮 本文将用到国产第三方…

linux安全--CentOS7安装Tomcat,远程管理ManagerApp

目录 1.Tomcat安装 2.Tomcat远程管理 1.Tomcat安装 下载安装包并解压 tar xf apache-tomcat-7.0.54.tar.gz -C /usr/local/apache-tomcat_7.0.54/tomcat启停 启动 ./startup.sh 停止 ./shutdown.sh 2.Tomcat远程管理 找到tomcat文件夹中webapps/manager/META-INF/contex…

Linux系统---Haproxy高性能负载均衡软件

目录 一、Haproxy介绍 1.Haproxy定义 2.Haproxy主要特性 3.Haproxy调度算法原理 3.1RR&#xff08;Round Robin&#xff09; 3.2LC&#xff08;Least Connections&#xff09; 3.3SH&#xff08;Source Hashing&#xff09; 二、安装Haproxy 1.yum安装 2.第三方rpm包安…

Android中compile,implementation和api的区别,以及gradle-wrapper的详解

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 前言&#xff1a; compile,implementation和api的区别和其作用 compile和api会进行传递…

【深度学习目标检测】二十三、基于深度学习的行人检测计数系统-含数据集、GUI和源码(python,yolov8)

行人检测计数系统是一种重要的智能交通监控系统&#xff0c;它能够通过图像处理技术对行人进行实时检测、跟踪和计数&#xff0c;为城市交通规划、人流控制和安全管理提供重要数据支持。本系统基于先进的YOLOv8目标检测算法和PyQt5图形界面框架开发&#xff0c;具有高效、准确、…

叶子分享站PHP源码

叶子网盘分享站PHP网站源码&#xff0c;创建无限级文件夹&#xff0c;上传文件&#xff0c;可进行删除&#xff0c;下载等能很好的兼容服务器。方便管理者操作&#xff0c;查看更多的下载资源以及文章&#xff0c;新增分享功能&#xff0c;异步上传文件/资源等 PHP网盘源码优势…

Unix环境高级编程-学习-05-TCP/IP协议与套接字

目录 一、概念 二、TCP/IP参考模型 三、客户端和服务端使用TCP通信过程 1、同一以太网下 四、函数介绍 1、socket &#xff08;1&#xff09;声明 &#xff08;2&#xff09;作用 &#xff08;3&#xff09;参数 &#xff08;4&#xff09;返回值 &#xff08;5&…

三星泄露微软 Copilot 新功能:用自然语言操控各种功能

3 月 11 日消息&#xff0c;微软计划本月晚些时候发布新款 Surface 电脑和适用于 Windows 11 的 Copilot 新功能&#xff0c;但三星似乎等不及了&#xff0c;在其即将推出的 Galaxy Book4 系列产品宣传材料中泄露了一些即将到来的 Copilot 功能。 三星官网上发布的图片证实了此…

在centOS服务器安装docker,并使用docker配置nacos

遇到安装慢的情况可以优先选择阿里镜像 安装docker 更新yum版本 yum update安装所需软件包 yum install -y yum-utils device-mapper-persistent-data lvm2添加Docker仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.rep…