一台服务器部署两个独立的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,一经查实,立即删除!

相关文章

工程师日常:六大茶类--黑茶

工程师日常&#xff1a;六大茶类–黑茶 黑茶也是六大茶类之一&#xff0c;是加工过程中有微生物参与品质形成的一种后发酵茶。因为它在加工储藏和运输过程中&#xff0c;微生物的胞外酶的作用&#xff0c;产生了一些其他茶类没有的或者说是含量比较低的一些生化活性物质。在调…

qt+ffmpeg 实现音视频播放(一)

一、ffmpeg下载 官网&#xff1a;点击跳转 二、模块介绍 1. libavcodec&#xff1a;音视频编解码库&#xff0c;提供了多种编解码器&#xff0c;可以支持多种音视频格式的编解码操作。 2. libavformat&#xff1a;音视频封装和解封装库&#xff0c;提供了多种封装格式的支持…

【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…

查看docker所有映射到宿主机的端口

要查看 Docker 中所有映射到宿主机的端口&#xff0c;您可以使用以下命令&#xff1a; docker ps -a --format "table {{.Names}}\t{{.Ports}}"该命令将显示所有正在运行的容器的名称和它们所映射的端口信息。 如果您只想查看正在运行的容器的端口映射信息&#xf…

【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…

「jQuery系列」jQuery noConflict() 方法、运用JSONP

文章目录 一、noConflict() 方法使用方法&#xff1a;注意事项&#xff1a; 二、JSONP简介1. 跨域数据请求2. API 数据调用3. 简单的数据共享使用注意事项&#xff1a;示例&#xff1a; 三、jQuery 使用 JSONP四、热门文章 一、noConflict() 方法 jQuery.noConflict() 方法是 …

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

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

python 猜数字 random

#猜数字 如果数字太大 则输出 Too large! 如果数字太小 则输出 Too small! 如果猜中则输出 Just right! import random numberrandom.randint(1,100)while True:numint(input(输入1-100之间的数))if num>number:print(你猜的数字太大了 请重新输入)elif num<number:prin…

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;系统具有完整…

小程序开发——获取设备信息 API(一)

ty.device.getDeviceInfo 获取设备的设备信息 需引入DeviceKit&#xff0c;且在>1.2.6版本才可使用 请求参数 Object object 属性类型默认值必填说明deviceIdstring是deviceId 设备 id 支持跨面板获取其他的设备信息&#xff0c;当前面板可以传当前设备的 id 来进行获取d…

Grad_CAM图

我们要将网络学习到的特征进行可视化。 import os import cv2 import numpy as np import torch from PIL import Image import matplotlib.pyplot as plt from torchvision import models from torchvision import transforms from utils import GradCAM, show_cam_on_image,…

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…