【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';

结果会同时查出 aA(因为 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 DATABASECREATE TABLEINSERT 等)。恢复时,就是将这些指令重新执行一遍。

相关推荐
feng68_2 小时前
MySQL-Router+MySQL-MGR
android·linux·运维·数据库·mysql·adb
黄焖鸡能干四碗2 小时前
企业数据架构、应用架构、技术架构设计方案(PPT文件)
大数据·运维·数据库·安全·架构·需求分析
王仲肖2 小时前
PostgreSQL 索引内部机制与表重建深度解析
数据库·postgresql
摇滚侠2 小时前
Redis 怎么用,Java 开发,Redis 怎么用
java·数据库·redis
云边有个稻草人2 小时前
Oracle替换工程实践:迁移落地实操与成本全解析
数据库·oracle
勤劳的进取家2 小时前
Excel 公式技术手册
数据库·excel
BullSmall2 小时前
接口测试-- SQL 注入测试(安全合规版)
数据库·sql·oracle·安全性测试
王仲肖2 小时前
PostgreSQL 冻结(Freeze)机制深度解析
数据库·postgresql
赵渝强老师2 小时前
【赵渝强老师】Redis中的字符串
数据库·redis·nosql