MySQLdump 因例程挂起

MySQLdump hangs with routines

我正在尝试使用 bat 文件将一个数据库的完整副本复制到另一个数据库。有程序和功能需要调过去,这是我最大的问题。

当我使用

mysqldump -u user -p password db1 -v -R | mysql -u user -p password db2

它将毫无问题地复制所有表,但是当涉及到带有此的过程和函数时挂起

..
-- Sending SELECT query...
-- Retrieving rows...

我有好几个函数和程序需要复制过来。任何帮助将不胜感激。

根本原因

  • 当你mysqldump存储过程时,它需要锁定mysql.proc
  • 您加载的 table 与您转储的相同 table 并且它已锁定!!!

建议

先加载数据。将存储过程写入文本文件。的,加载代码。

mysqldump -u user -p password db1 -v --skip-routines | mysql -u user -p password db2
mysqldump -u user -p password db1 -t -d --routines > stored_procs_from_db1.sql
mysql -u user -p password db2 < stored_procs_from_db1.sql

试一试 !!!