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 rsyncrsync --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,请参考其官方文档和相关资源。

相关推荐
Tttian62210 分钟前
基于Pycharm与数据库的新闻管理系统(2)Redis
数据库·redis·pycharm
做梦敲代码1 小时前
达梦数据库-读写分离集群部署
数据库·达梦数据库
苹果醋32 小时前
2020重新出发,MySql基础,MySql表数据操作
java·运维·spring boot·mysql·nginx
小蜗牛慢慢爬行2 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
hanbarger2 小时前
nosql,Redis,minio,elasticsearch
数据库·redis·nosql
微服务 spring cloud2 小时前
配置PostgreSQL用于集成测试的步骤
数据库·postgresql·集成测试
先睡2 小时前
MySQL的架构设计和设计模式
数据库·mysql·设计模式
弗罗里达老大爷2 小时前
Redis
数据库·redis·缓存
仰望大佬0073 小时前
Avalonia实例实战五:Carousel自动轮播图
数据库·microsoft·c#