我正在使用MYSQL Workbench,希望在同一台服务器上克隆一个具有不同名称的数据库。它应该将所有表结构和数据复制到新数据库中。
我知道通常的方法可能是使用 数据导出
生成数据库的SQL脚本,然后在新数据库上运行该脚本,但我遇到了一些问题。
无论如何,有没有更好或更容易的方法来实现这个目标?
我正在使用MYSQL Workbench,希望在同一台服务器上克隆一个具有不同名称的数据库。它应该将所有表结构和数据复制到新数据库中。
我知道通常的方法可能是使用 数据导出
生成数据库的SQL脚本,然后在新数据库上运行该脚本,但我遇到了一些问题。
无论如何,有没有更好或更容易的方法来实现这个目标?
您可以使用MySQL Workbench中的迁移向导。只需在源和目标选择中选择相同的本地连接,然后在手动编辑步骤中更改架构名称。如果在手动编辑步骤中没有出现任何内容,请单击下一步,源和目标将出现。缓慢单击源数据库名称并编辑为正确的名称。一直执行到最后,你就可以拥有两个具有不同名称的相同数据库了。请注意,您必须已经创建了目标数据库并授予MySQL Workbench用户权限。
我试图在MySQL Workbench 8.0中实现这个功能。然而,我一直收到有关列统计的错误。主要思路是使用位于MySQL Workbench安装目录中的mysqldump.exe导出数据。因此,假设您使用的是Windows操作系统:
Open Powershell, navigate to mysqldump.exe directory. In my case the command is:
cd C:\Program Files\MySQL\MySQL Workbench 8.0 CE
Export database by executing mysqldump providing the right arguments:
./mysqldump.exe --host=[hostServerIP] --protocol=tcp --user=[nameOfUser] --password=[yourPassword] --dump-date=FALSE --disable-keys=FALSE --port=[portOfMysqlServer] --default-character-set=utf8 --skip-triggers --column-statistics=0 "[databaseName]"
Without changing directory, import the exported file (.sql) by using the following command in Powershell:
Get-Content "[pathToExportedDataFile]" | ./mysql.exe --user=[nameOfUser] --password=[yourPassword] --port=[portOfMysqlServer] --host=[hostServerIP] --database=[nameOfNewDatabase] --binary-mode=1