一、Rocky常用命令
序号 | 命令 | 描述 |
1 | cat /etc/rocky-release | 查看Rocky系统版本 |
2 | uname -r | 查看内核版本 |
3 | lsblk | 查看硬盘、分区、挂载点多大【不显示磁盘已用多少、剩余多少】 |
4 | df -h | 看容量、已用、剩余、使用率、挂载点 |
5 | fdisk -l | 识别物理硬盘【硬件分区层面】 |
6 | mkdir -p | 自动创建中间不存在的父级目录 |
7 | chown -R | 递归修改文件/目录的属主(所有者)以及属组 |
8 | vim | 文本编辑器(vi的增强版本) |
9 | pwd | 显示当前所在目录 |
10 | ls | 列出当前目录文件 |
11 | rm | 删除 |
12 | rm -rf | 递归删除 |
13 | cp | 复制 |
14 | mv | 移动/重命名 |
15 | cat | 查看文件内容 |
16 | ps aux | 查看所有进程 |
17 | kill [PID] | 杀掉进程 |
18 | kill -9 [PID] | 强制杀掉进程 |
19 | systemctl start 服务 | 启动服务 |
20 | systemctl stop 服务 | 停止服务 |
20 | systemctl restart 服务 | 重启服务 |
22 | systemctl status 服务 | 查看服务状态 |
23 | systemctl enable 服务 | 开启开机自启 |
24 | systemctl disable 服务 | 关闭开机自启 |
二、系统磁盘分区规则
2.1 安装默认自动分区(LVM)策略
Rocky9 安装界面【选择自动分区 (LVM)时】默认分配原则:
1、磁盘剩余空间小于 70G,Rocky9基本会把所有空间给根,Rocky10会以及安装器算法划分空间;
2、如果磁盘总空间大于等于 70G:根目录/最大分配70G,磁盘剩下全部剩余空间分配给rl‑home逻辑卷。
安装的时候可以将空间都给根,也可以分区。分区的好处是防止日志等程序意外将根打满导致系统崩溃。
2.2 各挂载点说明
devtmpfs:内存文件系统,提供设备节点,存放在内存,不占用硬盘
/dev/shm:共享内存,程序可以使用这块内存做高速共享;重启数据全部消失
/run:存放运行时进程 pid、socket,内存,重启清空
efivarfs:变量虚拟文件,用于 UEFI 固件,很小,不用关注磁盘使用率
rl‑root:根分区 / ;操作系统、/var、/etc默认全部在这里
/boot:约 1G,xfs,存放内核、initramfs启动镜像
/boot/efi:约 600M,EFI 系统分区
rl‑home:用户数据目录,自动分区时存放大量剩余磁盘空间
tmpfs:用户会话临时内存文件系统;user/0:root 登录会话
三、MySQL数据目录迁移至/home盘
业务场景:根分区空间紧张,MySQL 默认数据目录/var/lib/mysql占用大量磁盘,需要迁移至大空间的 /home 目录。
步骤1:查看磁盘空间:df -h
步骤2:停止MySQL服务并检查是否有残留进程
停止服务:systemctl stop mysqld
查看进程:ps -ef |grep mysqld
步骤3:在/home目录下创建mysql数据目录
mkdir -p /home/mysql/data
步骤4:拷贝全部原有数据库文件(rsync 保留权限属性)
使用 rsync 比 cp 更适合迁移,完整保留文件权限、属主属组、selinux 标签属性,避免权限异常。
rsync -av /var/lib/mysql/ /home/mysql/data/
步骤5:修改目录属主属组
MySQL 进程默认运行用户是 mysql,不是 root,目录必须归属 mysql 用户,否则启动报错。
chown -R mysql:mysql /home/mysql/data
步骤6:SELinux 安全上下文配置(Rocky9 默认开启 SELinux)
Rocky默认开启 SELinux(强制安全防护机制,管进程能访问哪些文件),SELinux 还是会阻止 mysqld 读写 /home/mysql/data,mysql 启动直接失败(不要关闭 SELinux,修改永久策略)。
安装selinux工具:dnf install -y policycoreutils-python-utils
修改 SELinux 永久上下文规则(写进策略库,不是临时改):
semanage fcontext -a -t mysqld_db_t "/home/mysql/data(/.*)?"
应用策略,递归刷新目录
restorecon -Rv /home/mysql/data
步骤7:修改MySQL配置文件
编辑配置文件:vim/etc/my.cnf
修改 [mysqld] 段
[mysqld]
datadir=/home/mysql/data
socket=/var/lib/mysql/mysql.sock
“socket”不要修改默认路径,它是本机 mysql 客户端和 mysql 服务之间通信的 “本地管道文件”,不走 3306 端口
步骤8:检查 systemd 服务沙箱 ProtectHome 参数
Rocky9 的 mysqld.service 存在沙箱隔离配置ProtectHome=true,开启后会屏蔽访问/home、/root目录,导致 MySQL 启动失败。
查看服务单元文件:systemctl cat mysqld
如果看到 ProtectHome=true,就执行 systemctl edit mysqld 添加关闭;【ProtectHome=true(systemd 沙箱隔离),systemd 启动 mysqld 的时候,直接隔离屏蔽掉/home、/root、/run/user目录】
如果没有这一行,则不需要修改 service,跳过该步骤。
步骤9:重载 systemd,启动 mysql服务
【判断】如果修改了service 覆盖配置之后必须执行:systemctl daemonreload
启动mysql:systemctl start mysqld
查看mysql状态:systemctl status mysqld
步骤10:启动成功后登录验证结果
mysql -uroot -p
show variables like '%datadir%';
确认 datadir 指向 /home/mysql/data 之后,先跑一会测试业务,确认数据没问题再去删除之前的随数据库。
也可进一步查看数据库列表:show databases;