数据库字符集 校验规则 备份还原数据库
数据库编码和校验规则
概念
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 |
|
mysqldump
:是 MySQL 提供的一个命令行工具,用于生成数据库的备份文件。它会将指定数据库的所有结构和数据导出为一个 SQL 文件。-P3306
:指定 MySQL 服务器的端口号,3306
是 MySQL 的默认端口。如果 MySQL 服务运行在另一个端口,可以用这个参数指定正确的端口。-u root
:指定用于执行备份的 MySQL 用户名。
--p
:表示需要在执行命令后输入用户 root
的密码。注意,这里没有直接在命令行中暴露密码,而是会提示在执行命令时输入。
-B 数据库名
:-B
选项表示要备份一个或多个数据库。数据库名
是待备份的数据库的名称。数据库备份存储的文件路径
:文件名通常以.sql
为扩展名。
实际的例子
假设有一个名为 mydatabase
的数据库, 我们需要将其保存到/backup/mydatabase.sql
文件中,
1 |
|
还原命令格式
1 |
|
解释
mysql
:MySQL 的命令行工具,用于执行 SQL 语句或将 SQL 文件导入数据库中。-P3306
:指定 MySQL 服务器的端口号。与备份时相同,3306
是 MySQL 的默认端口。如果 MySQL 服务运行在另一个端口,需要在这里指定。-u root
:指定用于执行还原的 MySQL 用户名。 用户通常有足够的权限进行还原操作。-p
:表示需要在执行命令后输入用户root
的密码。数据库名
:标识要将备份数据还原到的目标数据库的名称。如果数据库已经存在,该命令将覆盖数据库中的现有数据;如果数据库不存在,需要先创建它。数据库备份文件路径
:要还原的备份文件的路径,通常是以.sql
结尾的文件。
实际的例子
假设有一个备份文件 /backup/mydatabase.sql
,想将它还原到名为 mydatabase
的数据库中,命令如下:
1 |
|
执行此命令后,会被提示输入 root
用户的密码。输入密码后,备份文件中的数据和结构将被导入到 mydatabase
数据库中。