数据库运维实战:MySQL 常用命令(外部 + 内部操作)
分类:数据库中间件
标签: MySQL、数据库、SQL、备份、Navicat、mysql
摘要: 网站的数据全在 MySQL 里(我的博客也是)。本文把”外部怎么连、内部怎么查怎么改”的常用命令整理成卡,含登入、建库建表、增删改查、备份恢复等,适合随时翻。
一、连接 MySQL(外部操作)
mysql -uroot -p # 本地登录,回车后输密码
mysql -h 服务器IP -uroot -p # 远程登录(如用 Navicat)
service mysql status # 看 MySQL 服务状态
systemctl restart mysql # 重启
二、库与表(建、删、看)
-- 查看 / 新建 / 删除 数据库
SHOW DATABASES;
CREATE DATABASE myblog DEFAULT CHARACTER SET utf8mb4;
DROP DATABASE myblog;
-- 选库
USE myblog;
-- 看表
SHOW TABLES;
-- 建表(字段类型 + 主键)
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50),
age INT,
PRIMARY KEY (id)
);
-- 看表结构
DESC users;
三、增删改查(SQL 核心)
-- 插入
INSERT INTO users (name, age) VALUES ('zhu', 23);
-- 查询
SELECT * FROM users; -- 全查
SELECT name, age FROM users WHERE age > 20; -- 条件查
SELECT * FROM users ORDER BY age DESC; -- 按年龄降序
SELECT COUNT(*) FROM users; -- 统计行数
-- 更新
UPDATE users SET age = 24 WHERE name = 'zhu';
-- 删除
DELETE FROM users WHERE id = 1;
四、备份与恢复(最重要,别丢数据)
# 备份:把整个库导出成 .sql 文件
mysqldump -uroot -p myblog > myblog_backup.sql
# 恢复:把备份文件导回数据库
mysql -uroot -p myblog < myblog_backup.sql
⚠️ 改库/删库前一定先备份。我用
mysqldump定期备份博客数据库,防止误删或服务器故障丢数据。
远程访问配置(Navicat 连不上时):
-- 给远程用户授权(允许任何主机访问)
CREATE USER 'backup'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'backup'@'%';
FLUSH PRIVILEGES;
# 另外还要保证:MySQL 没绑死本机 + 3306 端口防火墙/安全组放行
五、常用管理命令
SHOW PROCESSLIST; -- 看当前哪些 SQL 在跑(排查慢查询/卡死)
KILL 连接ID; -- 杀掉某个僵死连接
SELECT VERSION(); -- 看版本
SHOW VARIABLES LIKE 'character_set%'; -- 看字符集(中文乱码查这个)
六、踩坑速记
| 场景 | 现象 | 解决 |
|---|---|---|
| 远程连不上 | Navicat 超时 | 授权用户 + 3306 防火墙/安全组放行 |
| 中文乱码 | 存进去变 ??? | 库表用 utf8mb4 字符集 |
| 忘了密码 | 登录失败 | 用官方 skip-grant 方式重置,或 root 权限改 |
| 误删数据 | 表没了 | 平时养成 mysqldump 备份习惯 |
| 卡死/慢 | 页面转圈 | SHOW PROCESSLIST 找到慢 SQL |