数据库服务体系结构

1. 数据库服务应用配置

服务进行配置有什么作用?

         实现服务运行启动

         实现某些功能

应用配置有三种方式?

        利用编译安装进行配置

        编写配置文件信息 ,.默认的配置文件: /etc/my.cnf

        利用启动命令参数配置信息,mysqld_safe --skip-grant-tables --skip-networking &

#配置文件内容 有[]的部分表示对客户端或者服务端的配置区域
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
port=3306
socket=/tmp/mysql.sock[client]
socket=/tmp/mysql.sock

 启动数据库服务为什么会有两个进程信息?

一个是 mysqld_safe

一个是 mysqld

知识点补充:数据库服务启动与关闭管理

mysqld_safe   父进程,接受任务信息

mysqld            子进程,处理任务信息,核心

 2. 数据库服务实例创建

1. 在数据库服务运行中,可以存在多实例运行的概念,什么是数据库服务的多实例呢?

一般在一个系统环境中,可以运行多个相同的服务程序信息,并且产生不同的进程和网络端口信息,就可以成为多实例概念。

2. 多实例的作用?

充分利用硬件资源

 2.1 实战多实例

## 1. 环境部署准备
##创建数据目录
mkdir -p /data/330{7..9}/data
chown -R mysql. /data/## 2. 进行不同实例的初始化
##将默认的配置文件改名或者移走
mv /etc/my.cnf /etc/my.cnf.bak
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/data
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3309/data## 3. 编写配置文件
vim /data/3307/data/my.cnf 
[mysql]
socket=/tmp/mysql3307.sock
[mysqld]
user=mysql
port=3307
basedir=/usr/local/mysql
datadir=/data/3307/data
socket=/tmp/mysql3307.sockvim /data/3308/data/my.cnf 
[mysql]
socket=/tmp/mysql3308.sock
[mysqld]
user=mysql
port=3308
basedir=/usr/local/mysql
datadir=/data/3308/data
socket=/tmp/mysql3308.sockvim /data/3309/data/my.cnf 
[mysql]
socket=/tmp/mysql3309.sock
[mysqld]
user=mysql
port=3309
basedir=/usr/local/mysql
datadir=/data/3309/data
socket=/tmp/mysql3309.sockmysqld_safe --defaults-file=/data/3307/data/my.cnf &
mysqld_safe --defaults-file=/data/3308/data/my.cnf &
mysqld_safe --defaults-file=/data/3309/data/my.cnf &## 4. 检查端口是否成功
## 5. 指定套接字文件登录
mysql -S /tmp/mysql3307.sock   ##登录
select @@port;   ##sql语句查看端口

 3. 数据库服务版本升级

实现程序功能升级,升级过程中:不能影响数据信息,不能影响业务使用

实现升级的方法:

        本地升级:单台服务器升级

        迁移升级:多台服务器升级   -- 主从结构

注意事项:

先进行小版本升级,在进行大版本升级

3.1 数据库升级实战(5.6---->5.7) 

## 0. 准备环境
systemctl  start mysql56  ##启动5.6数据库
## 创建测试数据
create database oldboy;
create table stu (name varchar(10),age int,gender char(1));
insert into stu values ('oldboy',20,'m');
select * from stu;## 1. 数据库旧版服务关闭
systemctl stop mysql56.service ## 2. 数据库服务最新程序启动
## 实现挂库信息配置。 然后跳过授权表和网络的方式启动,新程序加载旧数据
vim /etc/my57.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql57
datadir=/data/3356/data      ##修改为旧版的数据目录
socket=/tmp/mysql.sock##启动新版数据库/usr/local/mysql57/bin/mysqld_safe --defaults-file=/etc/my57.cnf --skip-grant-tables --skip-networking &## 3. 进入数据库查看数据
select * from oldboy.stu;
## 4. 数据库服务升级数据结构
/usr/local/mysql57/bin/mysql_upgrade -S /tmp/mysql.sock --force

3.2 数据库升级实战(5.7------>8.0)

## 1. 数据库最新程序安装
## 2. 旧版数据库服务关闭
systemctl  stop mysql57
## 3. 新版数据库服务启动
## 实现挂库信息配置。 然后跳过授权表和网络的方式启动,新程序加载旧数据
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3356/data      ##旧版本的数据目录
socket=/tmp/mysql.sock## 启动新版数据库
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables --skip-networking &## 查看数据是否丢失
mysql
select * from oldboy.stu;

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

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

相关文章

Armv8/Armv9架构从入门到精通-介绍

CSDN学院课程连接:https://edu.csdn.net/course/detail/39573 1 讲师介绍 拥有 12 年手机安全、汽车安全、芯片安全开发经验,擅长 Trustzone/TEE/ 安全的设计与开发,对 ARM 架构的安全领域有着深入的研究和丰富的实践经验,能够…

【Web】2025西湖论剑·中国杭州网络安全安全技能大赛题解(全)

目录 Rank-l Rank-U sqli or not Rank-l username存在报错回显,发现可以打SSTI 本地起一个服务,折半查找fuzz黑名单,不断扔给fenjing去迭代改payload from flask import Flask, request, render_template_stringapp Flask(__name__)app…

2025.1.17——三、SQLi regexp正则表达式|

题目来源:buuctf [NCTF2019]SQLi1 目录 一、打开靶机,整理信息 二、解题思路 step 1:正常注入 step 2:弄清关键字黑名单 1.目录扫描 2.bp爆破 step 3:根据过滤名单构造payload step 4:regexp正则注…

使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程

使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程 在开发 Android 应用程序时,我们通常可以选择使用 Java 或 Kotlin 作为主要的编程语言。然而,有些开发者可能会想要在同一个项目中同时使用这两种语言,这就是所谓的混合编…

【机器学习实战中阶】音乐流派分类-自动化分类不同音乐风格

音乐流派分类 – 自动化分类不同音乐风格 在本教程中,我们将开发一个深度学习项目,用于自动化地从音频文件中分类不同的音乐流派。我们将使用音频文件的频率域和时间域低级特征来分类这些音频文件。 对于这个项目,我们需要一个具有相似大小和相似频率范围的音频曲目数据集…

【C++】面试题整理(未完待续)

【C】面试题整理 文章目录 一、概述二、C基础2.1 - 指针在 32 位和 64 位系统中的长度2.2 - 数组和指针2.3 - 结构体对齐补齐2.4 - 头文件包含2.5 - 堆和栈的区别2.6 - 宏函数比较两个数值的大小2.7 - 冒泡排序2.8 - 菱形继承的内存布局2.9 - 继承重写2.10 - 如何禁止类在栈上分…

简历_使用 Redis 解决集群模式下的 Session 共享问题,使用拦截器实现用户的登录,校验和权限刷新以及对单位时间内请求频繁的用户IP地址进行限流。

系列博客目录 文章目录 系列博客目录1.使用 Redis 解决集群模式下的 Session 共享问题集群的session共享问题总结 2.使用拦截器实现用户的登录,校验和权限刷新3.对单位时间内请求频繁的用户IP地址进行限流。实现思路步骤:1. 添加 Redis 依赖2. 配置 Redi…

构建安全防线:基于视频AI的煤矿管理系统架构创新成果展示

前言 本文我将介绍一款AI产品的成果展示——“基于视频AI识别技术的煤矿安全生产管理系统”。这款产品是目前我在创业阶段和几位矿业大学的博士共同从架构设计、开发到交付的全过程中首次在博客频道发布, 我之前一直想写但没有机会来整理这套系统的架构, 因此我也特别感谢CSDN平…

浅谈计算机网络04 | 现代网络需求与技术支撑

现代网络需求与技术支撑 一、网络和因特网流量的类型剖析1.1 弹性流量的自适应特征1.2 非弹性流量的刚性特征1.3 实时流量特性 二、特定领域的网络需求解析2.1 大数据环境下的网络需求分析2.2 云计算环境下的网络需求分析2.3 移动数据环境下的网络需求分析 三、QoS和QoE&#x…

麒麟操作系统服务架构保姆级教程(十一)https配置

如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 在运维工作中,加密和安全的作用是十分重要的,如果仅仅用http协议来对外展示我们的网站,过一段时间就会发现网站首页被人奇奇怪怪的篡改了,本来好好的博…

考研计算机组成原理——零基础学习的笔记

第一章 研究计算机硬件的学科。 1.计算机系统概述 计算机系统硬件软件(系统软件:比如操作系统、数据库管理系统、标准程序库等,应用软件:QQ等) 1.2计算机的层次结构 1.2.1计算机硬件的基本组成 冯诺伊曼计算机&a…

利用 LNMP 实现 WordPress 站点搭建

部署MySQL数据库 在主机192.168.138.139主机部署数据库服务 包安装数据库 apt-get install mysql-server 创建wordpress数据库和用户并授权 mysql> create database wordpress;#MySQL8.0要求指定插件 mysql> create user wordpress192.168.138.% identified with mys…

通过idea创建的springmvc工程需要的配置

在创建的spring mvc工程中&#xff0c;使用idea开发之前需要配置文件包括porm.xml、web.xml、springmvc.xml 1、porm.xml 工程以来的spring库&#xff0c;主要包括spring-aop、spring-web、spring-webmvc&#xff0c;示例配置如下&#xff1a; <project xmlns"http:/…

ASP.NET Core - 配置系统之自定义配置提供程序

ASP.NET Core - 配置系统之自定义配置提供程序 4. 自定义配置提供程序IConfigurationSourceIConfigurationProvider 4. 自定义配置提供程序 在 .NET Core 配置系统中封装一个配置提供程序关键在于提供相应的 IconfigurationSource 实现和 IConfigurationProvider 接口实现&…

gitlab runner正常连接 提示 作业挂起中,等待进入队列 解决办法

方案1 作业挂起中,等待进入队列 重启gitlab-runner gitlab-runner stop gitlab-runner start gitlab-runner run方案2 启动 gitlab-runner 服务 gitlab-runner start成功启动如下 [rootdocserver home]# gitlab-runner start Runtime platform …

python爬虫报错日记

python爬虫报错日记 类未定义 原因&#xff1a;代码检查没有问题**&#xff0c;位置错了**&#xff0c;测试代码包含在类里…… UnicodedecodeError错误 原因&#xff1a;字符没有自动转换成utf-8格式 KeyError&#xff1a;“href” 原因&#xff1a;前面运行正常&#x…

简历_基于 Cache Aside 模式解决数据库与缓存一致性问题。

系列博客目录 文章目录 系列博客目录缓存更新策略总结案例&#xff1a;给查询商铺的缓存添加超时剔除和主动更新的策略 说到解决数据库与缓存一致性的问题&#xff0c;其实就是要解决缓存更新的问题。 缓存更新策略 业务场景: 低一致性需求:使用内存淘汰机制。例如店铺类型的…

UllnnovationHub,一个开源的WPF控件库

目录 UllnnovationHub1.项目概述2.开发环境3.使用方法4.项目简介1.WPF原生控件1.Button2.GroupBox3.TabControl4.RadioButton5.SwitchButton6.TextBox7.PasswordBox8.CheckBox9.DateTimePicker10.Expander11.Card12.ListBox13.Treeview14.Combox15.Separator16.ListView17.Data…

二进制/源码编译安装mysql 8.0

二进制方式&#xff1a; 1.下载或上传安装包至设备&#xff1a; 2.创建组与用户&#xff1a; [rootopenEuler-1 ~]# groupadd mysql [rootopenEuler-1 ~]# useradd -r -g mysql -s /bin/false mysql 3.解压安装包&#xff1a; tar xf mysql-8.0.36-linux-glibc2.12-x86_64.ta…

快速入门:如何注册并使用GPT

文章目录 ProtonMail邮箱步骤 1&#xff1a;访问Proton官网步骤 2&#xff1a;创建ProtonMail账户步骤 3&#xff1a;选择注册免费账户步骤 4&#xff1a;填写邮箱地址和手机号&#xff08;可选&#xff09;步骤 5&#xff1a;邮箱验证&#xff08;必须进行验证&#xff09;步骤…