我跟着这个链接,但功能仍然不会导入到我的测试数据库。mysqldump函数导入mysql数据库的正确方法是什么?
http://www.ducea.com/2007/07/25/dumping-mysql-stored-procedures-functions-and-triggers/
是什么做的正确方法是什么?我还以为我做了一个完整的数据库转储,而且他们也没有将它放到测试数据库中。
这是我用的只是功能的命令:
mysqldump --routines=true --no-create-info --no-data --no-create-db --skip-opt --skip-triggers db > outputfile.sql -u dev -p
编辑:
望着转储文件,我没有看到任何看起来像功能(只有四个,他们在名称中有“标记”)。
-- mySQL dump 10.14 Distrib 5.5.50-MariaDB, for Linux (x86_64)
--
-- Host: localhost Database: db
-- ------------------------------------------------------
-- Server version 5.5.50-MariaDB
/*!40103 SET @[email protected]@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;
--
-- Dumping routines for database 'db'
--
/*!40103 SET [email protected]_TIME_ZONE */;
/*!40101 SET [email protected]_SQL_MODE */;
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
/*!40111 SET [email protected]_SQL_NOTES */;
-- Dump completed on 2017-08-24 16:29:45
这样就可以解释这一点。基于命令他们不会在那里的任何理由?
而且,我使用导入的内容:
sudo mysql test_db < outputfile.sql -u dev -p
我看到那个命令没有错。你检查过这个文件吗?它是否包含例程?除了导出命令之外,导入到测试数据库的另一个原因是不能正常工作:导入命令不正确。所以也许还要加上那部分。 – Solarflare
良好的呼叫...更新。 – sockpuppet
我没有看到'true'是否需要在文档中添加:'--routines = true'?我想知道这是否会使它成为未知参数,并且可能是为什么没有输出。请改用这个命令:'mysqldump - 例程 - 无创建信息 - 无数据 - 无创建数据库 - 禁用 - 选项 - 禁用触发器数据库>输出文件.sql -u dev -p' –