我最近升级到 MySQL v5.5,我的旧 mysqldump 脚本坏了,现在给我错误,“mysqldump: ambiguous option '--all' (all-databases, allow-keywords)”。
这是我原来的 mysqldump 行:
mysqldump -h localhost -u 用户名 -pPASSWORD -c --add-drop-table --add-locks --all --quick --lock-tables DATABASE > mysql_backups/DB-DUMP-
date +%Y-%m-%d-%H-%M-%S
.sql
因此,环顾四周后,我被告知您不需要--all option
, 并使用 --databases DATABASE NAME
,但是我不能使用此选项,因为它USE (DATABASE NAME)
在输出文件中包含 " " 行,这不适用于我的设置因为这个文件是一个“实时”转储,它被导入另一个数据库,但名称不同。
下一个建议是只使用:
mysqldump -u 用户名 -pPASSWORD 数据库 > mysql_backups/DB-DUMP-
date +%Y-%m-%d-%H-%M-%S
.sql
不幸的是,这实际上并没有给我任何数据,而只是这样:
-- MySQL dump 10.13 Distrib 5.5.31, for Linux (x86_64)
--
-- Host: localhost Database: DATABASE
-- ------------------------------------------------------
-- Server version 5.5.31-cll
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2013-06-11 2:55:52
在调查了这个之后,似乎大多数人都因为权限而遇到了这个问题,但是我试图转储这个数据库的用户拥有绝对的完全权限。
我已经在 Google 上搜索了很长一段时间,被带回 Stack Overflow 和整个网络上的许多其他帖子,但没有任何实际帮助。我变得非常沮丧,我不确定接下来要尝试什么,所以如果有人有任何建议,我将不胜感激。