数据库和中间件是跑业务的核心,初级运维至少要会:建库授权、看慢查询、备份恢复、看 Redis 内存和持久化。

一、MySQL 建库与用户授权

mysql -u root -p
-- 建库(utf8mb4,支持 emoji)
CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4;

-- 建用户
CREATE USER 'app'@'%' IDENTIFIED BY '强密码';

-- 授权:只给 mydb 的权限
GRANT ALL PRIVILEGES ON mydb.* TO 'app'@'%';

-- 生效
FLUSH PRIVILEGES;

'app'@'%'% 表示任意来源;生产建议收紧到具体 IP 或内网网段,别轻易用 %

常用查看:

SHOW DATABASES;
SHOW TABLES;
SELECT user, host FROM mysql.user;

二、慢查询

先开启慢查询日志(/etc/mysql/mysql.conf.d/mysqld.cnf):

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1          # 超过 1 秒记日志
sudo systemctl restart mysql
sudo tail -f /var/log/mysql/slow.log      # 实时看
sudo mysqldumpslow -s t -t 10 /var/log/mysql/slow.log   # 汇总最慢的 10 条

看到慢 SQL 后,检查是否缺索引(EXPLAIN 分析)、或 SQL 写得太差。

三、MySQL 备份与恢复

# 备份单库
mysqldump -u root -p mydb > mydb.sql

# 备份所有库
mysqldump -u root -p --all-databases --single-transaction > all.sql

# 恢复
mysql -u root -p mydb < mydb.sql

--single-transaction 让 InnoDB 备份时不锁表,生产备份推荐加。

四、Redis 持久化:RDB 与 AOF

Redis 数据在内存里,重启会丢,靠两种机制持久化:

机制原理特点
RDB定时快照存到 dump.rdb恢复快、可能丢最后几分钟
AOF记录每条写命令更完整、文件更大

配置(/etc/redis/redis.conf):

save 900 1          # RDB:900 秒内 1 次写就快照
appendonly yes      # 开 AOF
appendfsync everysec   # 每秒刷盘,性能与安全平衡
sudo systemctl restart redis
redis-cli config get appendonly

生产建议 RDB + AOF 都开:RDB 用于快速恢复,AOF 保证数据完整。

五、Redis 常用查看

redis-cli
> INFO               # 整体信息(内存、连接、持久化)
> INFO memory
> MEMORY STATS
> DBSIZE             # key 数量
> KEYS pattern       # 慎用,大库会卡
# 看占用内存最大的 key(用 redis-cli --bigkeys)
redis-cli --bigkeys

小结

数据库必会操作
MySQL建库建用户授权、慢查询、mysqldump 备份恢复
RedisRDB/AOF 配置、INFO 看内存、bigkeys 找大 key

数据库操作务必先备份再动手,尤其是 DROPDELETEFLUSHALL 这类不可逆命令。