当前位置: 首页 > news >正文

ubuntu18 下更改 mysql 数据目录

一、修改步骤

更改 MySQL 的数据目录需要注意以下几个步骤:

  1. 停止 MySQL 服务

    在 Ubuntu 中,你可以使用以下命令停止 MySQL 服务:

    sudo systemctl stop mysql
    ```
  2. 复制现有数据

    假设你的新的数据目录是 /new/dir/mysql,你应该使用 rsync 复制现有的数据。这样可以保留文件和目录的权限。

    sudo rsync -av /var/lib/mysql /new/dir
    ```
  3. 更改 MySQL 配置

    在 /etc/mysql/mysql.conf.d/mysqld.cnf 文件中找到 datadir 行,更改为新的目录:

    datadir=/new/dir/mysql
    ```你可能需要使用 `sudo` 权限编辑此文件。
  4. 更新 AppArmor 权限

    Ubuntu 使用 AppArmor 作为访问控制系统,你需要更新 MySQL 的配置文件以允许访问新的数据目录。在 /etc/apparmor.d/tunables/alias 文件中添加以下内容:

    alias /var/lib/mysql/ -> /new/dir/mysql/,
    ```你可能需要使用 `sudo` 权限编辑此文件。
  5. 重启 AppArmor

    使用以下命令重启 AppArmor:

    sudo systemctl restart apparmor
    ```
  6. 启动 MySQL 服务

    最后,你可以启动 MySQL 服务:

    sudo systemctl start mysql
    ```如果 MySQL 服务启动失败,你应该检查 MySQL 的日志文件以找到可能的问题。
    
  7. sql 语句验证

SHOW VARIABLES LIKE 'datadir';

SHOW DATABASES;

SELECT DATABASE();

SHOW TABLES;

SELECT * FROM 表名

请注意,这些步骤需要高级的系统管理技能,如果你不确定,应该寻求专业的帮助。同时,更改数据目录可能会影响到备份和其他依赖 MySQL 的应用,因此在操作前应该进行充分的规划和测试。

二、新知识点注入 

rsync命令

功能介绍:

rsync 是一个用于文件传输和备份的命令行工具,它可以在本地或远程系统之间同步文件和目录。它的设计目标是快速、灵活和安全地传输数据。下面是 rsync 命令的详细说明:

基本语法:

rsync [OPTION]... SRC [SRC]... DEST

常用选项:

  • -a, --archive:以归档模式传输文件和目录,保持文件属性、权限、时间等信息。
  • -v, --verbose:显示详细输出,可用于跟踪传输过程。
  • -r, --recursive:递归传输目录及其内容。
  • -z, --compress:在传输过程中压缩数据,以减少传输的数据量。
  • -u, --update:仅传输源目录中新于目标目录的文件。
  • -n, --dry-run:执行模拟运行,显示将要执行的操作而不实际执行。
  • --delete:删除目标目录中不在源目录中的文件。
  • --exclude=PATTERN:排除符合指定模式的文件或目录。
  • --progress:显示传输进度信息。

示例用法:

1. 本地文件同步:

rsync -avz /path/to/source /path/to/destination

该命令将本地源目录 /path/to/source 下的文件和目录以归档模式同步到本地目标目录 /path/to/destination

2. 本地到远程同步:

rsync -avz /path/to/source username@remote:/path/to/destination

该命令将本地源目录 /path/to/source 下的文件和目录以归档模式同步到远程服务器的目标目录 /path/to/destination,需要提供远程服务器的用户名和登录地址。

3. 远程到本地同步:

rsync -avz username@remote:/path/to/source /path/to/destination

该命令将远程服务器的源目录 /path/to/source 下的文件和目录以归档模式同步到本地的目标目录 /path/to/destination,需要提供远程服务器的用户名和登录地址。

这只是 rsync 命令的一些常见用法,还有更多的选项和用法可以根据具体需求进行探索和使用。可以通过运行 man rsync 或 rsync --help 命令获取完整的 rsync 命令手册和帮助信息。

AppArmor是什么

AppArmor(Application Armor)是一种增强安全性的 Linux 内核安全模块,用于限制应用程序的访问权限,从而提供额外的安全保护。它通过定义应用程序的访问策略,限制其对系统资源的访问,以减轻潜在的安全风险。

下面是关于 AppArmor 的详细说明:

工作原理:

AppArmor 通过为每个应用程序创建一个安全策略配置文件来工作。这个配置文件定义了应用程序在运行时可以访问的文件、目录、网络端口等资源。当应用程序运行时,AppArmor 监视其行为,并根据配置文件中定义的策略限制其访问权限。如果应用程序尝试访问未经授权的资源,AppArmor 将阻止该操作并记录相关事件。

主要特点:

  • 简单配置:AppArmor 使用基于文本的配置文件,易于理解和编辑。
  • 灵活性:可以为每个应用程序创建独立的安全策略配置文件,根据实际需求进行定制。
  • 按需加载:AppArmor 可以在需要时加载和卸载应用程序的安全策略,减少系统资源的占用。
  • 强制模式和学习模式:AppArmor 可以以强制模式或学习模式运行。在强制模式下,应用程序只能访问授权的资源,而在学习模式下,AppArmor 记录应用程序的行为并生成安全策略配置文件,供后续使用。

配置和使用:

  1. 安装 AppArmor:可以使用系统包管理器安装 AppArmor 软件包,例如在 Ubuntu 上使用以下命令:

    sudo apt-get install apparmor
    ```
  2. 创建安全策略配置文件:为每个应用程序创建一个安全策略配置文件,通常位于 /etc/apparmor.d/ 目录下。配置文件的命名约定是 usr.bin.<应用程序名称>。例如,对于应用程序 /usr/bin/firefox,配置文件将是 /etc/apparmor.d/usr.bin.firefox

  3. 编辑配置文件:打开配置文件并定义应用程序的访问策略。你可以指定允许或拒绝的文件、目录、网络端口等。配置文件使用一种特定的语法,可以参考 AppArmor 文档和示例来了解更多信息。

  4. 加载策略和启用 AppArmor:使用以下命令加载并启用应用程序的安全策略:

    sudo apparmor_parser -r /etc/apparmor.d/usr.bin.<应用程序名称>
    ```
  5. 检查和监视日志:通过 dmesg 命令或 /var/log/syslog 文件检查 AppArmor 的日志,以查看应用程序的访问被拦截的事件和详细信息。

这只是对 AppArmor 的简要介绍,它是一个强大的安全工具,可以增强 Linux 系统的安全性。如需深入了解和使用 AppArmor,请参考其官方文档和相关资源。

相关文章:

ubuntu18 下更改 mysql 数据目录

一、修改步骤 更改 MySQL 的数据目录需要注意以下几个步骤&#xff1a; 停止 MySQL 服务 在 Ubuntu 中&#xff0c;你可以使用以下命令停止 MySQL 服务&#xff1a; sudo systemctl stop mysql 复制现有数据 假设你的新的数据目录是 /new/dir/mysql&#xff0c;你应该使用 rsy…...

Arduino看门狗定时器WDT

Arduino - 看门狗定时器&#xff08;WDT&#xff1a;Watch Dog Timer&#xff09; 参考 看门狗定时器&#xff08;WDT&#xff1a;Watch Dog Timer&#xff09;实际上是一个计数器。 一般给看门狗一个大数&#xff0c;程序开始运行后看门狗开始倒计数。 如果程序运行正常&…...

大数据岗位秋招面试八股文总结(不定时更新)

HIVE面试题 内部表和外部表的区别 未被external修饰的是内部表&#xff0c;被external修饰的是外部表&#xff1b; 内部表数据由Hive自身管理&#xff0c;外部表由HDFS管理&#xff1b; 删除内部表会直接删除元数据及存储数据&#xff0c;删除外部表&#xff0c;仅仅会删除…...

MATLAB高分辨率图片

把背景调黑&#xff0c;把曲线调黄&#xff0c;把grid调白&#xff0c;调调字体字号的操作 close all a0:0.1:10; noise2*rand(1,length(a)); bsin(a)sin(3*a)noise;plot(a,b,y,linewidth,2); ylim([-3 4]) %y轴范围 set(gca,xgrid,on,ygrid,on,gridlinestyle,-,Grid…...

Spring Clould 消息队列 - RabbitMQ

视频地址&#xff1a;微服务&#xff08;SpringCloudRabbitMQDockerRedis搜索分布式&#xff09; 初识MQ-同步通讯的优缺点&#xff08;P61&#xff0c;P62&#xff09; 同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&…...

【SpringBoot】中的ApplicationRunner接口 和 CommandLineRunner接口

1. ApplicationRunner接口 用法&#xff1a; 类型&#xff1a; 接口 方法&#xff1a; 只定义了一个run方法 使用场景&#xff1a; springBoot项目启动时&#xff0c;若想在启动之后直接执行某一段代码&#xff0c;就可以用 ApplicationRunner这个接口&#xff0c;并实现接口…...

微信小程序前后端开发快速入门(完结篇)

这篇是微信小程序前后端快速入门完结篇了&#xff0c;今天利用之前学习过的所有知识做一个新的项目「群登记助手v1.0」小程序。 整体技术架构&#xff1a;小程序原生前端小程序云开发。 经历了前面教程的学习&#xff0c;大家有了一定的基础&#xff0c;所以本次分享重心主要是…...

【Linux】进程间通信之消息队列

文章目录 消息队列的概念消息队列的出队特点消息队列函数接口获取消息队列向消息队列发送消息接收消息操作消息队列的接口 代码演示ipcs命令 消息队列的概念 消息队列提供进程间数据块传输的方法&#xff0c;传输的每一个数据块都认为是有类型的&#xff0c;不同的数据块是有优…...

一次Linux中的木马病毒解决经历(6379端口---newinit.sh)

病毒入侵解决方案 情景 最近几天一直CPU100%,也没有注意看到了以为正常的服务调用,直到腾讯给发了邮件警告说我的服务器正在入侵其他服务器的6379端口,我就是正常的使用不可能去入侵别人的系统的,这是违法的. 排查 既然入侵6379端口,就怀疑是通过我的Redis服务进入的我的系统…...

ProtoBuf

文章目录 1.认识 ProtoBuf2. 安装ProtoBuf3. 快速上手 ProtoBuf4. proto3 语法5. probuf 实战6. 总结 1.认识 ProtoBuf 在认识 啥是 ProtoBuf 之前我们先来 回顾一下 &#xff08;或 了解 一下 啥是 序列化&#xff09; 序列化概念回顾 : 图一 : 回顾 序列化 &#xff0c;下面…...

AJ-Captcha行为验证在vue中的使用

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 项目场景&#xff1a;由原先的验证码校验升级为行为验证校验 使用方法 提示&#xff1a;参考文档&#xff1a; 参考文档&#xff1a;vue使用AJ-Captcha文档 gitee地址&#xff1a;AJ-Captcha &…...

Layui列表复选框根据条件禁用

// 禁用客服回访id有值的复选框res.data.forEach(function (item, i) {if (item.feedbackEmpId) {let index res.data[i][LAY_TABLE_INDEX];$(".layui-table tr[data-index"index"] input[typecheckbox]").prop(disabled,true);$(".layui-table tr[d…...

K8S核心组件etcd详解(下)

1 k8s如何使用etcd 在k8s中所有对象的manifest都需要保存到某个地方&#xff0c;这样他们的manifest在api server重启和失败的时候才不会丢失。 只有api server能访问etcd&#xff0c;其它组件只能间接访问etcd的好处是 增强乐观锁系统及验证系统的健壮性 方便后续存储的替换…...

【HarmonyOS】【DevEco Studio】ohpm安装失败该如何解决?

【关键词】 HarmonyOS、DevEco Studio、ohpm安装失败 【问题背景及解决方案】 最近遇到很多DevEco Studio安装ohpm失败的问题&#xff0c;下面给大家介绍几种出现的问题以及解决方案&#xff1a; 1、ohpm not set up&#xff0c;报错截图如下&#xff1a; ​ 解决方案&…...

STM32 cubemx CAN

接收用到的结构体如下&#xff1a;CAN概念&#xff1a; 全称Controller Area Network&#xff0c;是一种半双工&#xff0c;异步通讯。 物理层&#xff1a; 闭环&#xff1a;允许总线最长40m&#xff0c;最高速1Mbps&#xff0c;规定总线两端各有一个120Ω电阻&#xff0c;闭环…...

贴片电阻封装尺寸及焊盘尺寸

1、贴片电阻封装尺寸 有英制和公制之分&#xff0c;英制的单位是inch&#xff0c;公制的单位是m&#xff1b;&#xff08;m、cm、mm只是进制不同&#xff09; 通常说的都是英制&#xff0c;比如0603指的是inch单位下的0.06inch和0.03inch&#xff1b; 下图有inch和mm的对照、…...

软考笔记——9.软件工程

软件工程的基本原理&#xff1a;用分阶段的生命周期计划严格管理、坚持进行阶段评审、实现严格的产品控制、采用现代程序设计技术、结果应能清除的审查、开发小组的人员应少而精、承认不断改进软件工程事件的必要性。 软件工程的基本要素&#xff1a;方法、工具、过程 软件生…...

uniapp小程序实现上传图片功能,并显示上传进度

效果图&#xff1a; 实现方法&#xff1a; 一、通过uni.chooseMedia(OBJECT)方法&#xff0c;拍摄或从手机相册中选择图片或视频。 官方文档链接: https://uniapp.dcloud.net.cn/api/media/video.html#choosemedia uni.chooseMedia({count: 9,mediaType: [image,video],so…...

基于物理场的动态模式分解(piDMD)研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Docker部署rabbitmq遇到的问题 Stats in management UI are disabled on this node

1. Stats in management UI are disabled on this node #进入rabbitmq容器 docker exec -it {rabbitmq容器名称或者id} /bin/bash#进入容器后&#xff0c;cd到以下路径 cd /etc/rabbitmq/conf.d/#修改 management_agent.disable_metrics_collector false echo management_age…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...