【mysql】1.库的操作

目录

一、创建数据库

[1. 基本创建与查看](#1. 基本创建与查看)

[2. 编码与校验集](#2. 编码与校验集)

[3. 指定字符集创建数据库](#3. 指定字符集创建数据库)

[4. 不同校验集的对比](#4. 不同校验集的对比)

二、其他数据库操作

[1. 切换与查看当前数据库](#1. 切换与查看当前数据库)

[2. 删除数据库](#2. 删除数据库)

[3. 修改数据库字符集](#3. 修改数据库字符集)

[4. 查看数据库的创建信息](#4. 查看数据库的创建信息)

[5. 查看连接状态](#5. 查看连接状态)

三、数据库备份与恢复

[1. 备份数据库](#1. 备份数据库)

[2. 恢复数据库](#2. 恢复数据库)


数据库文件默认存储在 /var/lib/mysql 目录下。可以使用 sudo ls -la 查看该目录下的文件。

一、创建数据库

1. 基本创建与查看

复制代码
-- 创建数据库
CREATE DATABASE database1;

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

避免重复创建:

复制代码
CREATE DATABASE database1 IF NOT EXISTS;

如果数据库已存在,不会报错,只会显示警告。

注意 :数据库本质上就是文件系统中的目录,在 /var/lib/mysql 下可以看到对应的文件夹。虽然可以通过直接操作文件系统来创建或删除数据库,但严重不建议这样做,可能导致数据不一致。

2. 编码与校验集

数据库有两个重要的编码设置:

  • 编码集(charset):数据库存储数据时使用的编码

  • 校验集(collation):读取数据时用于比较的编码规则

重要:数据库操作时,应保证编码集和校验集相互匹配。

复制代码
-- 查看支持的编码集
SHOW CHARSET;

-- 查看支持的校验集
SHOW COLLATION;

在旧版本 MySQL 中,可以通过 ls -la /var/lib/mysql/数据库名/ 查看数据库的字符集设置(新版本可能不支持)。

3. 指定字符集创建数据库

复制代码
CREATE DATABASE d2 CHARSET=utf8 COLLATE=utf8_general_ci;

4. 不同校验集的对比

创建两个使用不同校验集的数据库:

复制代码
-- test1 使用 utf8_general_ci(不区分大小写)
CREATE DATABASE test1 COLLATE=utf8_general_ci;

-- test2 使用 utf8_bin(区分大小写)
CREATE DATABASE test2 COLLATE=utf8_bin;

在 test1 中操作:

复制代码
USE test1;
CREATE TABLE person(name VARCHAR(20));
INSERT INTO person(name) VALUES('A');
INSERT INTO person(name) VALUES('a');
SELECT * FROM person WHERE name = 'a';

结果会同时查出 a 和 A(因为 utf8_general_ci 不区分大小写)。

在 test2 中操作:

复制代码
USE test2;
CREATE TABLE person(name VARCHAR(20));
INSERT INTO person(name) VALUES('A');
INSERT INTO person(name) VALUES('a');
SELECT * FROM person WHERE name = 'a';

结果只查出 a(因为 utf8_bin 区分大小写)。

结论:校验集的选择会影响查询结果的匹配规则。

二、其他数据库操作

1. 切换与查看当前数据库

复制代码
-- 切换到指定数据库
USE test2;

-- 查看当前所在的数据库
SELECT DATABASE();

2. 删除数据库

复制代码
DROP DATABASE d1;

3. 修改数据库字符集

复制代码
ALTER DATABASE d2 CHARSET=gbk COLLATE=gbk_chinese_ci;

4. 查看数据库的创建信息

复制代码
SHOW CREATE DATABASE test1;

输出示例:

复制代码
+----------+------------------------------------------------------------------------------------------+
| Database | Create Database                                                                          |
+----------+------------------------------------------------------------------------------------------+
| test1    | CREATE DATABASE `test1` /*!40100 DEFAULT CHARACTER SET utf8mb3 */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+------------------------------------------------------------------------------------------+

说明 :/*! ... */ 类似于条件编译,表示在指定版本号以上才执行其中的指令。

5. 查看连接状态

复制代码
SHOW PROCESSLIST;

三、数据库备份与恢复

1. 备份数据库

在 shell 命令行中执行(不是在 MySQL 客户端内):

复制代码
mysqldump -uroot -p -B test1 > /home/xc/code/mysql/2操作/back.sql
  • -B:指定要备份的数据库名

  • >:将备份内容重定向到指定文件

2. 恢复数据库

在 MySQL 客户端中执行:

复制代码
SOURCE /home/xc/code/mysql/2操作/back.sql;

原理 :数据库备份时存储的是历史操作指令(如 CREATE DATABASE、CREATE TABLE、INSERT 等)。恢复时,就是将这些指令重新执行一遍。

相关推荐
程序猿乐锅40 分钟前
【黑马点评 | 第八篇】Redisson分布式锁
java·数据库·spring boot·redis·分布式·spring·缓存
Leo.yuan1 小时前
2026年本地化Data Agent优质厂商盘点:哪些产品更适合企业生产环境
大数据·数据库·人工智能
做运维的阿瑞1 小时前
数据库增删改的安全写法
数据库·sql·mysql
程序边界1 小时前
迁移评估不再拍脑袋,这个数据迁移工具的量化报告把我救了(上)
数据库
阿狗童鞋2 小时前
Redis实战指南
数据库·redis·缓存
lupai3 小时前
维修保养记录精准版 API 对接实战指南
数据库·python
2601_952196366 小时前
计算机科学与技术专业应届生投商业分析岗,需要哪些额外能力?
数据库·oracle
皮皮学姐分享-ppx6 小时前
地级市、省级人才政策强度测算(2000-2025)
大数据·数据库·人工智能·百度·高考
晚安日记wanna6 小时前
大厂禁 JOIN 的真正原因,拆到第四层才清楚
数据库·后端·面试
java1234_小锋7 小时前
Redis 宣布正式接入 AI
数据库·人工智能·redis