数据库字符集 校验规则 备份还原数据库

数据库编码和校验规则

概念

1. 数据库字符集

字符集是指数据库系统中用于表示字符数据的编码方案。每个字符集定义了一组字符以及每个字符如何编码成字节。不同的字符集适合不同的语言和应用场景。

2. 校验规则(Collation)

校验规则是定义如何比较和排序字符集中的字符。不同的校验规则会影响数据库中字符串数据的排序和比较方式。

  • 例如
    • utf8mb4_general_ci:一种不区分大小写的校验规则(ci表示不区分大小写,case-insensitive),使用在 utf8mb4 字符集上。
    • utf8mb4_bin:一种二进制校验规则,比较字符串时考虑字符的字节值,因此区分大小写。

3. 关系和作用

  • 字符集:决定了数据库中可以存储哪些字符以及这些字符如何编码——如果没有指明,则会使用默认的编码。

  • 校验规则:决定了数据库如何比较和排序这些字符。

4. 实例

  • 创建一个数据库时,可以指定字符集和校验规则:

    1
    CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

    这表示数据库 mydb 将使用 utf8mb4 字符集,并且在比较字符串时不区分大小写。

mysqldump

用例:

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

  • mysqldump:是 MySQL 提供的一个命令行工具,用于生成数据库的备份文件。它会将指定数据库的所有结构和数据导出为一个 SQL 文件。

  • -P3306:指定 MySQL 服务器的端口号,3306 是 MySQL 的默认端口。如果 MySQL 服务运行在另一个端口,可以用这个参数指定正确的端口。

  • -u root:指定用于执行备份的 MySQL 用户名。

--p:表示需要在执行命令后输入用户 root 的密码。注意,这里没有直接在命令行中暴露密码,而是会提示在执行命令时输入。

  • -B 数据库名-B 选项表示要备份一个或多个数据库。数据库名 是待备份的数据库的名称。

  • 数据库备份存储的文件路径:文件名通常以 .sql 为扩展名。

实际的例子

假设有一个名为 mydatabase 的数据库, 我们需要将其保存到/backup/mydatabase.sql 文件中,

1
2
mysqldump -P3306 -u root -p -B mydatabase > /backup/mydatabase.sql

还原命令格式

1
mysql -P3306 -u root -p 数据库名 < 数据库备份文件路径

解释

  • mysql:MySQL 的命令行工具,用于执行 SQL 语句或将 SQL 文件导入数据库中。

  • -P3306:指定 MySQL 服务器的端口号。与备份时相同,3306 是 MySQL 的默认端口。如果 MySQL 服务运行在另一个端口,需要在这里指定。

  • -u root:指定用于执行还原的 MySQL 用户名。 用户通常有足够的权限进行还原操作。

  • -p:表示需要在执行命令后输入用户 root 的密码。

  • 数据库名:标识要将备份数据还原到的目标数据库的名称。如果数据库已经存在,该命令将覆盖数据库中的现有数据;如果数据库不存在,需要先创建它。

  • 数据库备份文件路径:要还原的备份文件的路径,通常是以 .sql 结尾的文件。

实际的例子

假设有一个备份文件 /backup/mydatabase.sql,想将它还原到名为 mydatabase 的数据库中,命令如下:

1
mysql -P3306 -u root -p mydatabase < /backup/mydatabase.sql

执行此命令后,会被提示输入 root 用户的密码。输入密码后,备份文件中的数据和结构将被导入到 mydatabase 数据库中。


数据库字符集 校验规则 备份还原数据库
https://weihehe.top/2024/08/25/数据库字符集-校验规则/
作者
weihehe
发布于
2024年8月25日
许可协议