奇奇怪怪小知识 - 2

奇奇怪怪小知识 - 2
●茹菓ミ1. MySQL 常用查询
1.1 创建用户
创建可本地登录的用户
CREATE USER ‘用户名‘@’localhost’ IDENTIFIED BY ‘密码’;
创建可远程登录的用户(将所有主机写成 ‘%’)
CREATE USER ‘用户名‘@’%’ IDENTIFIED BY ‘密码’;
1.2 授予权限
授予对某个数据库的全部权限
GRANT ALL PRIVILEGES ON 数据库名.* TO ‘用户名‘@’主机’;
授予只读权限(仅查询)
GRANT SELECT ON 数据库名.* TO ‘用户名‘@’主机’;
授予特定操作(查询、插入、修改)
GRANT SELECT, INSERT, UPDATE ON 数据库名.* TO ‘用户名‘@’主机’;
授予全部库表权限(超级管理员,谨慎)
GRANT ALL PRIVILEGES ON . TO ‘用户名‘@’%’ WITH GRANT OPTION;
让权限修改立即生效
FLUSH PRIVILEGES;
1.3 查看用户权限
查看当前登录用户的权限
SHOW GRANTS;
查看指定用户的权限
SHOW GRANTS FOR ‘用户名‘@’主机’;
1.4 撤销权限
撤销某个权限
REVOKE SELECT ON 数据库名.* FROM ‘用户名‘@’主机’;
撤销所有权限
REVOKE ALL PRIVILEGES ON 数据库名.* FROM ‘用户名‘@’主机’;
FLUSH PRIVILEGES;
1.5 修改用户密码
修改自己的密码(MySQL 8.0+)
ALTER USER USER() IDENTIFIED BY ‘新密码’;
管理员修改其他用户密码
ALTER USER ‘用户名‘@’主机’ IDENTIFIED BY ‘新密码’;
1.6 删除用户
DROP USER ‘用户名‘@’主机’;
1.7 查看已有用户(管理员常用)
直接查 mysql.user 表(MySQL 8.0+)
SELECT user, host FROM mysql.user;
1.8 建库与建表
创建数据库并切换到该库下。
CREATE DATABASE 数据库名称;
USE 数据库名称;
建表示例(带详细字段说明)
CREATE TABLE 表名称 (
字段1 INT PRIMARY KEY AUTO_INCREMENT,
字段2 VARCHAR(20) NOT NULL,
字段3 INT,
字段4 CHAR(1) DEFAULT ‘默认值’);
1.9 插入数据(INSERT)
插入一条记录
INSERT INTO 表名 (字段1, 字段2, 字段3) VALUES (值1, 值2, 值3);
插入多条记录
INSERT INTO 表名 (字段1, 字段2, 字段3) VALUES
(值1, 值2, 值3),
(值4, 值5, 值6);
1.10 查询数据(SELECT)
查询全部字段
SELECT * FROM 表名;
查询指定字段
SELECT 字段1, 字段2 FROM 表名;
条件查询
SELECT * FROM 表名 WHERE 条件;
多条件查询
SELECT * FROM 表名 WHERE 条件1 AND 条件2;
精确匹配(字符串)
SELECT * FROM 表名 WHERE 字段 = ‘数据’;
模糊查询
SELECT * FROM 表名 WHERE 字段 LIKE ‘%关键字%’;
排序(ASC 升序,DESC 降序)
SELECT * FROM 表名 ORDER BY 字段 DESC;
限制返回行数
SELECT * FROM 表名 LIMIT 行数;
1.11 更新数据(UPDATE)
更新单字段
UPDATE 表名 SET 字段 = 新值 WHERE 条件;
更新多个字段
UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2 WHERE 条件;
在原有值基础上累加
UPDATE 表名 SET 字段 = 字段 + 增量 WHERE 条件;
1.12 删除数据(DELETE)
删除符合条件的记录
DELETE FROM 表名 WHERE 条件;
1.13 其他常用操作
查看表结构
DESC 表名;
清空表(保留结构,速度快,不可回滚)
TRUNCATE TABLE 表名;
删除表
DROP TABLE 表名;
删除数据库
DROP DATABASE 数据库名称;
1.14 备份与恢复
常用备份与恢复命令速查表。
| 操作场景 | 命令 | 说明 |
|---|---|---|
| 备份单个数据库 | mysqldump -u 用户名 -p 数据库名 > backup.sql | 导出指定数据库 |
| 备份所有数据库 | mysqldump -u 用户名 -p –all-databases > all.sql | 导出全部数据(含系统库) |
| 恢复 / 导入数据库 | mysql -u 用户名 -p 数据库名 < backup.sql | 将 SQL 文件导入指定数据库 |
| 查看导入进度 | pv backup.sql | mysql -u 用户名 -p 数据库名 |
1.14.1 导入 SQL 备份文件详细说明
将 SQL 备份文件导入指定数据库:
mysql -u 用户名 -p 数据库名 < 备份文件路径
示例:
mysql -uroot -p my_database < /backup/my_database_20260422.sql
1.14.2 使用 pv 查看实时导入进度
安装 pv(Pipe Viewer):
sudo yum install epel-release -y
sudo yum install pv -y
使用 pv 导入并显示进度:
pv 备份文件路径 | mysql -u 用户名 -p 数据库名
示例:
pv /data/mysql_20260421_120001.sql | mysql -uroot -p mysql
输出示例:
450MiB 0:00:15 [30.1MiB/s] [====================> ] 65% ETA 0:00:08
2. Linux 基础命令
2.1 查看系统资源
内存使用情况
查看内存总量与使用量(人类可读单位):
free -h
输出示例:
| total | used | free | shared | buff/cache | available | |
|---|---|---|---|---|---|---|
| Mem: | 15Gi | 3.2Gi | 8.1Gi | 1.2Gi | 4.3Gi | 11Gi |
| Swap: | 2.0Gi | 0.0Ki | 2.0Gi |
进程排序
按 CPU 使用率排序(前10名)
ps aux –sort=-%cpu | head -10
按内存使用率排序(前10名)
ps aux –sort=-%mem | head -10
其他进程查找命令
| 命令 | 说明 |
|---|---|
| pidstat -p 进程号 -r -u 1 | 动态监控指定进程的 CPU 和内存 |
| pgrep 进程名 | 直接返回 PID,如 pgrep vsftpd → 2121 |
| ps aux | grep 进程名 | 查看进程详细信息,第二列为 PID |
| pidof 进程名 | 精确匹配进程名,如 pidof java |
2.2 服务管理
| 命令 | 说明 |
|---|---|
| systemctl status 服务名称 | 检查服务运行状态 |
| systemctl restart 服务名称 | 重启服务 |
2.3 文件权限查看与修改
查看文件详细信息
查看文件权限、所有者等信息:
ls -l 文件路径
输出示例:
ls -l /data/ftp_data/contract/016XS25080048/1755739665463.jpg
-rw-r–r– 1 root root 504975 Apr 21 15:01 1755739665463.jpg
权限字段解读:
- 第1字符:**-** 表示普通文件,d 表示目录。
- 后续每3个字符一组:****rw-(所有者权限)、r–(所属组权限)、r–**(其他用户权限)。
- 第3列 root:文件所有者。
- 第4列 root:文件所属组。
递归修改目录所有者
递归修改目录及其下所有文件的所有者和所属组:
chown -R 所有者:所属组 目录路径
输出示例:
chown -R ftpuser:ftpuser /data/ftp_data/contract/016XS25080048
2.4 SELinux 临时关闭(快速测试)
临时关闭 SELinux(重启后失效):
setenforce 0
如需永久关闭,需修改 /etc/selinux/config 文件。
2.5 远程拷贝(scp)
拷贝整个目录
递归拷贝远程目录至本地:
scp -r 用户名@服务器IP:远程目录路径 本地目录路径
输出示例:
scp -r root@192.168.1.100:/data/ftp/contract/ /data/backup_ftp/contract/
拷贝单个文件
拷贝远程文件至本地:
scp 用户名@服务器IP:远程文件路径 本地目录路径
输出示例:
scp root@192.168.124.197:/data/mysql_backup/mysql_20260415_000620.sql-bak /data/ftp_data/
2.6 数据库备份与还原
导入 SQL 备份文件
将 SQL 备份文件导入指定数据库:
mysql -u 用户名 -p 数据库名 < 备份文件路径
输出示例:
mysql -uroot -p my_database < /backup/my_database_20260422.sql
若目标数据库不存在,需先创建:
CREATE DATABASE my_database;





