将MySql DB从一台服务器复制到另一台服务器

时间:2009-06-09 18:28:03

标签: mysql mysqldump

我需要将MySQL数据库从Linux上的服务器复制到Windows上的服务器。我尝试过使用mysqldump但它似乎没有包含Stored Procs。我想复制所有内容,即架构,数据,存储过程,触发器等。

谢谢, 唐

2 个答案:

答案 0 :(得分:2)

您需要--routines的“mysqldump”选项。

从--routines标志的文档:

  

转储存储的例程(程序和   来自转储数据库的函数)。   使用此选项需要SELECT   mysql.proc表的特权。   使用生成的输出   --routines包含CREATE PROCEDURE和CREATE FUNCTION语句   重新创建例程。但是,这些   语句不包含属性   例如常规创建和   修改时间戳。这意味着   当重新加载例程时   他们将与   时间戳等于重新加载时间。

     

如果您需要例程   用原版重新创建   时间戳属性,不要使用   --routines。而是转储并重新加载mysql.proc表的内容   直接,使用MySQL帐户   拥有适当的特权   mysql数据库。

     

在MySQL 5.1.2中添加了此选项。   在此之前,存储的例程不是   倾倒。常规DEFINER值不是   倾销到MySQL 5.1.8。这意味着   在5.1.8之前,当例程是   重新加载,它们将被创建   定义器设置为重新加载用户。   如果你需要例程   用原版重新创建   定义器,转储和加载内容   mysql.proc表直接作为   如前所述。

答案 1 :(得分:2)

mysqldump -u root -p --routines --databases io \
| sed -e "s/;;/\$\$/g" \
> io.sql

请尝试转储。并导入命令:

mysql -u root -p --fource --databases io < io.sql