在 MySQL 中复制数据库

Rashmi Patidar 2023年1月30日 2022年5月13日
  1. 在 MySQL 中的同一服务器实例上复制数据库
  2. 在 MySQL 中使用|或管道运算符复制命令
在 MySQL 中复制数据库

创建现有数据库的副本称为 MySQL Clone 方法。克隆包括一次性创建表结构、约束、函数、过程、触发器以及与表相关的所有功能的副本。

这些功能使用户更加可靠,即使一个节点出现故障,副本或克隆也可以提供服务。当发生意外丢失或故障时,制作数据库副本和克隆会有所帮助。

备份过程可以每天进行,也可以在特定的时间间隔内进行。在同一服务器实例上复制数据库的方法如下。

在 MySQL 中的同一服务器实例上复制数据库

将源数据库复制到 SQL 脚本文件中。创建一个新的目标数据库,然后将 SQL 脚本文件导入新数据库。

这是一个三步过程。

> 	mysql -u root -p
	****
>	mysqldump -u root -p firstDb > firstDbDump.sql
>	create database newDb;
>	mysql -u root -p newDb < firstdump.sql
> 	show databases;
> 	use newDb;
>	show tables;

上面第一种方法的详细描述和命令如下。

  1. 要继续第一种方法,请在本地系统中安装 MySQL 服务器 8.0。

  2. 继续安装过程,安装成功后,到达 bin 路径。

  3. 打开环境变量,在系统 PATH 变量中添加 MySQL 系统的路径。它允许从文件系统中的任何位置访问 MySQL。

  4. 打开命令提示符,输入如上所示的命令。此命令启用 MySQL 提示符的使用。

    -u 属性指定执行该值的用户名; root 是用户名。 -p 属性指定密码,该密码位于另一行中。

    密码永远不会添加到命令中。它以加密格式出现在另一行中。

  5. 输入命令将文件从该位置复制到临时中间文件。

  6. mysqldump -u root -p database_name_to_be_cloned > filename_for_clone 是指定 mysqldump 实用程序的命令,用户名和密码作为选项。

    它将数据库名称作为参数并将转储文件放入文件中。 > 参数将输出定向到特定文件。

  7. 如果没有提供文件名的绝对文件路径,SQL 文件将存储在安装 MySQL 服务器的 bin 目录中。

  8. 创建一个新数据库,其中应该导入 SQL 以克隆现有数据库。

  9. 一旦一个临时或中间文件形成,它可以再次使用 < 运算符读入新形成的数据库。运算符将 SQL 结果重定向到 newDb 数据库中。

  10. 可以使用命令 show databases; 检查数据库。此命令将列出当前 SQL 连接中的所有数据库。

  11. use 命令允许用户使用指定的数据库。use 命令将参数作为数据库名称。

  12. show tables 允许用户列出数据库中存在的所有表。因此,可以使用最后三个命令检查复制的内容。

在 MySQL 中使用|或管道运算符复制命令

一个线性命令获取源数据库的转储并重定向到另一个目标数据库。

> mysqldump -u root -p sourceDb | mysql -u root -p targetDb
  1. 到达安装 MySQL 的 bin 文件夹。

  2. bin 文件夹打开命令提示符。

  3. 使用上面的命令,事先分别创建源数据库和目标数据库。

  4. 该命令使用 mysqldump 实用程序创建 SQL 转储,将用户名和密码作为强制选项。并且输出被重定向到另一个目标数据库。

  5. |或管道符号主要是一种 LINUX/UNIX 命令运算符,允许用户在一行中使用两个或多个命令。

    它充当管道,将第一个命令的输出提供给另一个命令。第二个命令通常使用管道符号分隔。

  6. 该命令与方法一中描述的相同,并且在一行中使用管道符号。

附上上述命令成功执行的截图。

使用管道运算符的 mysql 复制命令

当我们输入上述命令时,它会提示用户输入两次密码。根据此处的命令,两次提到了 -p 选项,要求用户输入两个数据库的密码。

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相关文章 - MySQL Database