【发布时间】:2019-07-26 13:48:14
【问题描述】:
我正在使用 MYSQL Workbench,我想在同一台服务器上克隆一个不同名称的数据库。它应该将所有表结构和数据复制到新数据库中。
我知道通常的方法可能是使用data export生成数据库的sql脚本,然后在新数据库上运行脚本,但我遇到了一些问题。
无论如何,有没有更好或更简单的方法?
【问题讨论】:
标签: mysql sql mysql-workbench
我正在使用 MYSQL Workbench,我想在同一台服务器上克隆一个不同名称的数据库。它应该将所有表结构和数据复制到新数据库中。
我知道通常的方法可能是使用data export生成数据库的sql脚本,然后在新数据库上运行脚本,但我遇到了一些问题。
无论如何,有没有更好或更简单的方法?
【问题讨论】:
标签: mysql sql mysql-workbench
您可以使用 MySQL Workbench 中的迁移向导。只需在源和目标选择中选择相同的本地连接,然后在手动编辑步骤中更改模式名称。如果手动编辑步骤中没有出现任何内容,请单击下一步,源和目标将出现。慢慢单击源数据库名称并编辑为正确的名称。彻底走到最后,瞧——你有两个名称不同的相同数据库。请注意,您必须已经创建了目标数据库并为 MySQL Workbench 用户授予了权限。
【讨论】:
【讨论】:
我尝试在 MySQL Workbench 8.0 中执行此操作。但是,我一直收到有关列静态的错误。主要思想是使用位于 MySQL Workbench 安装目录中的 mysqldump.exe 来导出数据。因此,假设一个面向 Windows 的平台:
打开 Powershell,导航到 mysqldump.exe 目录。就我而言,命令是:
cd C:\Program Files\MySQL\MySQL Workbench 8.0 CE
通过执行 mysqldump 并提供正确的参数来导出数据库:
./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]"
在不改变目录的情况下,使用以下命令在Powershell中导入导出的文件(.sql):
Get-Content "[pathToExportedDataFile]" | ./mysql.exe --user=[nameOfUser] --password=[yourPassword] --port=[portOfMysqlServer] --host=[hostServerIP] --database=[nameOfNewDatabase] --binary-mode=1
您可以查看文档here 以获取有关 mysqldump 选项的更多信息。
请注意以下几点:
【讨论】: