跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
SQL

MySQL 数据库核心操作:创建、修改、备份与连接排查

涵盖 MySQL 数据库的核心操作流程,包括带字符集配置的创建方法、字符集与校验规则的区别解析、日常查看修改删除操作、基于 mysqldump 的备份恢复实战以及通过 show processlist 排查连接问题。重点强调 IF NOT EXISTS 防错、-B 参数保恢复完整性、生产环境谨慎删除及权限控制等关键细节,提供从基础语法到运维排查的完整方案。

kaikai发布于 2026/3/27更新于 2026/6/315 浏览
MySQL 数据库核心操作:创建、修改、备份与连接排查

创建数据库:基础语法与个性化配置

创建数据库是 MySQL 操作的第一步。看似简单的命令,字符集和校验规则的配置往往决定了后续开发是否顺畅。

核心语法

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...];

其中 create_specification 用于配置核心属性,主要是字符集和校验规则:

[DEFAULT] CHARACTER SET charset_name; -- 指定字符集
[DEFAULT] COLLATE collation_name;   -- 指定校验规则

注意:

  • IF NOT EXISTS:建议加上,避免库已存在时报错,提升脚本健壮性。
  • DEFAULT 关键字:可省略,写上更清晰。

实战场景

默认配置

不指定时,MySQL 使用默认字符集(通常是 utf8)和校验规则(utf8_general_ci)。

-- 创建名为 db1 的数据库
CREATE DATABASE db1;
指定字符集

自定义字符集,校验规则沿用该字符集的默认值。

-- 创建名为 db2 的数据库,指定 utf8 字符集
CREATE DATABASE db2 CHARSET=utf8;
同时指定字符集和校验规则

适用于有特殊需求(如区分大小写)的场景。

-- 创建名为 db3 的数据库,指定 utf8 字符集和 utf8_general_ci 校验规则
CREATE DATABASE db3 CHARSET=utf8 COLLATE utf8_general_ci;

字符集与校验规则:核心配置详解

字符集决定能存储哪些语言字符,校验规则决定查询和排序逻辑(如是否区分大小写)。乱码或查询异常多源于此。

查看系统默认配置

SHOW VARIABLES LIKE 'character_set_database';
SHOW VARIABLES  ;
LIKE
'collation_database'

查看所有支持的字符集和校验规则

SHOW CHARSET;
SHOW COLLATION;

提示:除非有历史遗留需求,否则优先选择 utf8,避免使用 latin1 等不支持中文的字符集。

校验规则的实际影响

以 utf8_general_ci(不区分大小写)和 utf8_bin(区分大小写)为例:

案例 1:不区分大小写 (utf8_general_ci)

CREATE DATABASE test1 COLLATE utf8_general_ci;
USE test1;
CREATE TABLE person(name VARCHAR(20));
INSERT INTO person VALUES('a'),('A'),('b'),('B');
SELECT * FROM person WHERE name='a';
SELECT * FROM person ORDER BY name;

结果:查询 name='a' 会返回 a 和 A;排序不分大小写。

案例 2:区分大小写 (utf8_bin)

CREATE DATABASE test2 COLLATE utf8_bin;
USE test2;
CREATE TABLE person(name VARCHAR(20));
INSERT INTO person VALUES('a'),('A'),('b'),('B');
SELECT * FROM person WHERE name='a';
SELECT * FROM person ORDER BY name;

结果:查询 name='a' 只返回 a;排序时大写字母在前。

结论:用户信息等需区分大小写的场景用 utf8_bin,普通业务数据推荐 utf8_general_ci。

操纵数据库:查看、修改、删除

查看数据库信息

-- 查看所有数据库
SHOW DATABASES;

-- 查看指定数据库的创建语句(含字符集等配置)
SHOW CREATE DATABASE mytest;

细节理解:

  • 反引号 `:防止库名与关键字冲突。
  • /*!40100 DEFAULT CHARACTER SET utf8 */:版本兼容指令,非注释。

修改数据库配置

仅支持修改字符集和校验规则,不支持直接改库名(改库名建议迁移数据)。

ALTER DATABASE db_name [alter_spacification ...];
-- 示例:修改字符集为 gbk
ALTER DATABASE mytest CHARSET=gbk;

删除数据库

高危操作,执行后数据不可恢复。

DROP DATABASE [IF EXISTS] db_name;

提醒: 生产环境严禁直接删除,务必先备份并审批;开发环境确认无用后再删。

数据库的备份与恢复

数据是核心资产,mysqldump 和 source 是标准工具。

备份工具:mysqldump

需在命令行(bash/CMD)中执行,退出 MySQL 连接。

# 备份单个数据库
mysqldump -P 端口号 -u 用户名 -p 密码 -B 数据库名 > 备份文件路径/文件名.sql

参数说明:

  • -P:端口号,默认 3306。
  • -u:用户名。
  • -p:密码(紧接 -p 无空格)。
  • -B:关键参数,包含建库语句。
  • >:重定向写入文件。

多场景备份实战

1. 备份单个完整数据库

mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql

2. 备份指定表

mysqldump -u root -p123456 mytest person user > D:/mytest_tables.sql

3. 批量备份多个数据库

mysqldump -u root -p123456 -B mytest db1 db2 > D:/multi_db.sql

恢复数据库

在 MySQL 连接中使用 source 命令。

SOURCE D:/mytest.sql;

避坑指南:

  • -B 参数:若未加,恢复时需手动建库并 USE 指定库。
  • 路径:建议使用绝对路径。
  • 权限:备份用户需查询权限,恢复用户需创建及插入权限。
  • 编码:确保备份文件编码与数据库一致。
  • 策略:生产环境建议定时自动备份并异地存储。

查看数据库连接情况

遇到卡顿或疑似入侵时,使用 show processlist 排查。

SHOW PROCESSLIST;

关键字段:

字段含义
Id连接唯一标识
User用户名
Host客户端 IP 和端口
Command当前状态 (Sleep/Query)
Time状态持续时间
State详细状态
Info正在执行的 SQL

应用场景:

  • 排查卡顿:关注 Query 状态且 Time 大的连接,定位慢 SQL。
  • 排查入侵:检查陌生 User 或非内网 Host。
  • 释放无效连接:大量 Sleep 且 Time 大时,可用 kill Id; 释放。

核心避坑指南与最佳实践

  1. 创建必加 IF NOT EXISTS:避免重复报错。
  2. 禁止直接删生产库:先备份,做权限管控。
  3. 备份必加 -B 参数:确保恢复时有建库语句。
  4. 字符集选 utf8:避免乱码。
  5. 规范编码:关键字大写,库名表名小写,加反引号。
  6. 最小权限原则:开发用户不给删除、建库权限。
  7. 定期查连接:及时释放无效连接,优化性能。

目录

  1. 创建数据库:基础语法与个性化配置
  2. 核心语法
  3. 实战场景
  4. 默认配置
  5. 指定字符集
  6. 同时指定字符集和校验规则
  7. 字符集与校验规则:核心配置详解
  8. 查看系统默认配置
  9. 查看所有支持的字符集和校验规则
  10. 校验规则的实际影响
  11. 操纵数据库:查看、修改、删除
  12. 查看数据库信息
  13. 修改数据库配置
  14. 删除数据库
  15. 数据库的备份与恢复
  16. 备份工具:mysqldump
  17. 备份单个数据库
  18. 多场景备份实战
  19. 恢复数据库
  20. 查看数据库连接情况
  21. 核心避坑指南与最佳实践
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 30 行 Python 实现公开接口数据抓取与本地化存储
  • 华为云 AI 算力部署:基于 Dify 集成 DeepSeek 构建实时翻译助手
  • 商城认证服务搭建:Nacos 注册、Gateway 路由与短信验证码集成
  • 无人机多模态目标检测:高多样性基准数据集与融合方法
  • MySQL 数据库核心操作指南:创建、修改与备份恢复实战
  • Flutter inappwebview_cookie_manager 适配鸿蒙 HarmonyOS 安全隔离实践
  • Qwen3-4B-Instruct 实战:HR 招聘 JD 生成与面试题库构建
  • Docker 可视化管理与远程访问配置指南
  • 单链表高频题解:删除节点、反转链表与查找中间节点
  • AI 绘画技术发展与职业变现路径解析
  • 最新 ACM Fellow 名单发布,4 名中国大陆学者当选,中国机构入选人数第二
  • 构建企业级 AI 大模型的关键步骤与框架
  • LogicGame:清华智谱发布大模型规则推理新基准
  • 利用 DeepSeek API 构建贪吃蛇游戏的技术实践
  • 设计支持万人并发抢购的秒杀系统架构方案
  • SpringBoot 结合 Redis+Caffeine 多级缓存架构实践
  • 66 个机器人项目合集:科研、教育、工业与医疗方向资源整理
  • C语言标准库与工具链:string.h、stdio.h、stdlib.h及CMake构建
  • Trae Agent 利用 MCP Tools 实现 Gitee 自动化管理
  • C++ 类与对象基础:封装、实例化与 this 指针详解

相关免费在线工具

  • SQL 美化和格式化

    在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online

  • SQL转CSV/JSON/XML

    解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online

  • CSV 工具包

    CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online