首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL 数据库基础操作指南:从创建管理到备份恢复全解析

MySQL 数据库基础操作指南:从创建管理到备份恢复全解析

作者头像
禁默
发布2025-12-21 09:59:43
发布2025-12-21 09:59:43
3630
举报

前言

在日常开发或数据管理中,与 MySQL 数据库打交道时,我们最常遇到的需求往往不是复杂的架构设计,而是 “如何创建一个数据库”“怎么查看字符集是否正确”“备份的数据该怎么恢复” 这类基础操作。这些看似简单的步骤,却是保证数据安全、避免乱码或误删风险的关键 —— 比如没设置正确的校验规则可能导致中文排序异常,误删数据库前没备份会直接造成数据丢失,连不上数据库时不知道如何查看连接情况则会卡住业务进度。 为了帮大家系统掌握这些 “高频基础操作”,这篇博客会围绕 MySQL 数据库的核心日常管理展开:从最基础的 “查看已有数据库”“创建新数据库” 讲起,到如何安全删除数据库、如何配置字符集与校验规则避免乱码,再到数据库的基本操纵逻辑,最后重点拆解备份与恢复的具体步骤,以及如何查看数据库连接情况排查问题。


查看和创建数据库

代码语言:javascript
复制
show databases;
代码语言:javascript
复制
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:

大写的表示关键字

[] 是可选项

CHARACTER SET: 指定数据库采用的字符集

COLLATE: 指定数据库字符集的校验规则

创建数据库案例

创建名为 bd 的数据库

代码语言:javascript
复制
create database bd;

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则

是:utf8_ general_ ci

创建一个使用 utf8 字符集的 bd 2 数据库

代码语言:javascript
复制
create database bd2 charset=utf8;

创建一个使用 utf 字符集,并带校对规则的 bd 3 数据库。

代码语言:javascript
复制
create database bd3 charset=utf8 collate utf8_bin;

三个数据库的创建结果

数据库删除

代码语言:javascript
复制
DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

数据库内部看不到对应的数据库

对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

注意:不要随意删除数据库

创建数据库:create database db_name;---本质就是在/var/lib/mysql 创建一个目录(小编的Linux云主机上,大家可能不同) 删除数据库:drop database db_name;----删除目录 所以在上面那个路径下直接mkdir ,rm进行命令操作也能成功,但是别这么做,毕竟是不规范的操作。

字符集和校验规则

查看系统默认字符集以及校验规则

代码语言:javascript
复制
show variables like 'character_set_database';
show variables like 'collation_database';

查看数据库支持的字符集

代码语言:javascript
复制
show charset;

字符集主要是控制用什么语言。比如 utf8 就可以使用中文。

查看数据库支持的字符集校验规则

代码语言:javascript
复制
show collation;

创建数据库的时候,有两个编码集: 1.数据库编码集--数据库未来存储数据 2.数据库校验集--支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式 综上:数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的!!!

校验规则对数据库的影响

不区分大小写

创建一个数据库,校验规则使用 utf8_ general_ ci[ 不区分大小写 ]

create database test1 collate utf8_general_ci; use test1; create table name(name varchar(20)); insert into num values('a'); insert into num values('A'); insert into num values('b'); insert into num values('B'); select *from num;

区分大小写

创建一个数据库,校验规则使用 utf8_ bin[ 区分大小写 ]

create database test2 collate utf8_general_ci; use test2; create table name(name varchar(20)); insert into num values('a'); insert into num values('A'); insert into num values('b'); insert into num values('B');

不区分大小写的排序以及查询结果

区分大小写的排序和查询结果

操纵数据库

查看数据库

代码语言:javascript
复制
show databases;

显示创建语句

代码语言:javascript
复制
show create database 数据库名;
代码语言:javascript
复制
mysql> show create database test2;
+----------+--------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                                          |
+----------+--------------------------------------------------------------------------------------------------------------------------+
| test2    | CREATE DATABASE `test2` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_bin */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+--------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

说明:

MySQL 建议我们关键字使用大写,但是不是必须的。

数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字

/*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

修改数据库

语法:

代码语言:javascript
复制
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:

对数据库的修改主要指的是修改数据库的字符集,校验规则

实例: 将 hellomysql 数据库字符集改成 gbk

代码语言:javascript
复制
mysql> show create database hellomysql;
+------------+--------------------------------------------------------------------------------------------------------------------------------------+
| Database   | Create Database                                                                                                                      |
+------------+--------------------------------------------------------------------------------------------------------------------------------------+
| hellomysql | CREATE DATABASE `hellomysql` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+------------+--------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> alter database hellomysql charset=gbk;
Query OK, 1 row affected (0.02 sec)

mysql> show create database hellomysql;
+------------+-------------------------------------------------------------------------------------------------------+
| Database   | Create Database                                                                                       |
+------------+-------------------------------------------------------------------------------------------------------+
| hellomysql | CREATE DATABASE `hellomysql` /*!40100 DEFAULT CHARACTER SET gbk */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+------------+-------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> 

备份和恢复

备份

代码语言:javascript
复制
# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

在系统终端执行正确的 mysqldump 命令

将test2库备份文件

代码语言:javascript
复制
# Linux 系统示例(直接在 [root@xxx ~]# 提示符下执行)
mysqldump -P3306 -u root -p -B test2 > /root/test2_backup.sql

这时,可以打开看看 test2_backup.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

还原

代码语言:javascript
复制
mysql> source 路径;

注意事项

如果备份的不是整个数据库,而是其中的一张表,怎么做?

代码语言:javascript
复制
mysqldump -u root -p 数据库名 表名1 表名2 > 。。。

mysql+系统级命令

代码语言:javascript
复制
# 1. 先登录 MySQL 客户端创建数据库(若已存在可跳过)
mysql -u root -p
Enter password: 你的密码
mysql> CREATE DATABASE IF NOT EXISTS test2;  # 创建数据库
mysql> exit;  # 退出客户端

# 2. 执行还原命令,指定数据库
mysql -u root -p test2 < /root/test2_backup.sql

同时备份多个数据库

代码语言:javascript
复制
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

MYSQL客户端执行:

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。

查看连接情况

代码语言:javascript
复制
show processlist

可以告诉我们当前有哪些用户连接到我们的 MySQL ,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

结束语

到这里,MySQL 数据库的核心基础操作就梳理完毕了。我们从数据库的 “查看与创建” 入手,掌握了如何安全删除数据库、如何通过字符集与校验规则规避乱码问题,也了解了数据库的基本操纵逻辑,最后重点学会了备份与恢复的两种常用方式,以及如何通过查看连接情况排查异常 —— 这些操作看似基础,却是保障数据安全、稳定使用 MySQL 的 “基石”。 比如备份与恢复,很多人会在数据丢失后才意识到其重要性;字符集配置则容易被忽略,直到出现中文排序错误才回头排查。希望这篇内容能帮你把这些基础操作内化为 “习惯”,而不是等到出问题才临时补救。 如果在实际操作中遇到了特殊场景(比如超大数据库备份、多用户连接冲突),或者对某一步操作有疑问,欢迎在评论区交流。后续我们还会针对 MySQL 的进阶操作(如 SQL 优化、事务管理)展开分享,让大家从 “会用” 到 “用好” MySQL,持续提升数据管理能力。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 查看和创建数据库
  • 数据库删除
  • 字符集和校验规则
  • 操纵数据库
  • 备份和恢复
  • 查看连接情况
  • 结束语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档