克隆MySQL数据库

Vin*_* HC 47 mysql database mysqldump

我在拥有120个表的服务器上有数据库.

我想用新的数据库名称和复制的数据克隆整个数据库.

有没有一种有效的方法来做到这一点?

小智 96

$ mysqldump yourFirstDatabase -u user -ppassword > yourDatabase.sql
$ mysql yourSecondDatabase -u user -ppassword < yourDatabase.sql
Run Code Online (Sandbox Code Playgroud)

  • 应该注意,这不会创建新的数据库.首先需要创建新数据库(在此示例中为"yourSecondDatabase"),然后运行上述命令. (22认同)
  • 对大多数人来说可能是显而易见的,但是在我尝试它的前几次我错过了它.这应该从常规命令行完成,而不是从mysql提示符完成.此外,您可能希望在"mysqldump"(第1行)之后和"mysql"(第2行)之后添加"-uroot"或您的用户名称. (11认同)
  • 我猜`-ppassword`与`--password = <password>`相同(我不知道那些命令选项)...所以这是我的投票;) (3认同)

Kai*_*nad 29

mysqldump -u <user> --password=<password> <DATABASE_NAME> | mysql -u <user> --password=<password> -h <hostname> <DATABASE_NAME_NEW>
Run Code Online (Sandbox Code Playgroud)


use*_*605 12

像接受的答案但没有.sql文件:

mysqldump sourcedb -u <USERNAME> -p<PASS> | mysql destdb -u <USERNAME> -p<PASS>
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您需要先创建 `destdb` (3认同)

ako*_*kos 5

如果你使用phpMyAdmin

  1. 选择要复制的数据库(通过从phpMyAdmin主屏幕单击数据库).
  2. 进入数据库后,选择"操作"选项卡.
  3. 向下滚动到"将数据库复制到:"部分
  4. 输入新数据库的名称.
  5. 选择"结构和数据"来复制所有内容.或者,如果您想要列而不是数据,则可以选择"仅结构".
  6. 选中"复制前创建数据库"复选框以创建新数据库.
  7. 选中"添加AUTO_INCREMENT值"框.
  8. 单击"Go"按钮继续.