某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的MySQL数据库。使用以下方法,可以非常简单地实现。
假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:
1. 首先创建新的数据库newdb
#mysql -u root -ppassword
<div class="line number2 index1 alt1" style="margin: 0px !important; padding: 0px 1em 0px 3px !important; background-color: rgb(15, 25, 42) !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; white-space: pre !important;"><code class="text plain" style="border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; min-height: auto !important; color: rgb(209, 237, 255) !important;">mysql>CREATE DATABASE `newdb` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;</code></div>
</div>
</td>
</tr>
</tbody>
|
2. 使用mysqldump及mysql的命令组合,一次性完成复制
#mysqldump db1 -u root -ppassword --add-drop-table | mysql newdb -u root -ppassword
|
(注意-ppassword参数的写法:-p后面直接跟密码,中间没有空格)
以上是在同一台MySQL服务器上复制数据库的方法。如果要复制到远程另一台MySQL服务器上,可以使用mysql的“ -h 主机名/ip”参数。前提是mysql允许远程连接,且远程复制的传输效率和时间可以接受。
#mysqldump db1 -uroot -ppassword --add-drop-table | mysql -h 192.168.1.22 newdb -uroo
|