Sivo 悉见

MySQL快速复制数据库的方法

匿名 · 更新于 2017/3/21

某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的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, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace !important; min-height: auto !important; color: rgb(209, 237, 255) !important;">mysql&gt;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