【问题标题】:mysqldump misses table datamysqldump 缺少表数据
【发布时间】:2016-02-20 05:29:52
【问题描述】:

我想完全转储我的数据库。所以我用...

mysqldump -h <host> -u <user> -p<password> -q --single-transaction --triggers --routines --compress <database> > dump.sql

... 将我的数据转储到文件(4.271.663.366 字节 > 3,97GB)。我为我的表找到了一个创建语句,但没有插入数据。 如果我将表格单独转储到文件中,一切正常。

这里有一些信息:

数据库信息:

  • 表数:215
  • 记录:32105706
  • 类型:InnoDB(一些 MyIsam)
  • 大小:6.5 GiB

有问题的表:

  • 记录:31178
  • 类型:InnoDB
  • 大小:12.5 MiB

创建此表的语句(仅使用 phpmyadmin 导出 -> 结构创建):

CREATE TABLE IF NOT EXISTS `<table-name>` (
  `<field>` mediumint(11) unsigned NOT NULL AUTO_INCREMENT,
  `<field>` varchar(64) NOT NULL,
  `<field>` varchar(64) NOT NULL,
  `<field>` varchar(2) NOT NULL,
  `<field>` varchar(8) NOT NULL,
  `<field>` varchar(8) NOT NULL,
  `<field>` int(2) unsigned NOT NULL,
  `<field>` int(2) unsigned NOT NULL,
  `<field>` int(2) unsigned NOT NULL,
  `<field>` int(2) unsigned NOT NULL,
  `<field>` int(2) unsigned NOT NULL,
  `<field>` int(2) unsigned NOT NULL,
  `<field>` int(2) unsigned NOT NULL,
  `<field>` int(2) unsigned NOT NULL,
  `<field>` int(2) unsigned NOT NULL,
  `<field>` varchar(50) NOT NULL,
  `<field>` tinyint(4) NOT NULL DEFAULT '0',
  `<field>` varchar(35) NOT NULL,
  `<field>` datetime DEFAULT NULL,
  `<field>` varchar(70) DEFAULT NULL,
  `<field>` datetime DEFAULT NULL,
  `<field>` varchar(70) DEFAULT NULL,
  `<field>` datetime DEFAULT NULL COMMENT '<comment>',
  `<field>` tinyint(1) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`<field>`),
  UNIQUE KEY `<field>` (`<field>`),
  KEY `<field>` (`<field>`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=10500127 ;

--
-- Trigger `<field>`
--
DROP TRIGGER IF EXISTS `<table-trigger>`;
DELIMITER //
CREATE TRIGGER `<table-trigger>` BEFORE DELETE ON `<table-name>`
 FOR EACH ROW BEGIN
  SET @DISABLE_TRIGER_other_trigger=1;
  DELETE FROM <other-table> WHERE <field> = OLD.<field>;
  DELETE FROM <other-table> WHERE <field> = OLD.<field>;  
  DELETE FROM <other-table> WHERE <field> = OLD.<field>;
  DELETE FROM <other-table> WHERE <field> = OLD.<field>;
  DELETE FROM <other-table> WHERE <field> = OLD.<field>;
  DELETE FROM <other-table> WHERE <field> = OLD.<field>;
  DELETE FROM <other-table> WHERE <field> = OLD.<field>;
  DELETE FROM <other-table> WHERE <field> = OLD.<field>;
  DELETE FROM <other-table> WHERE <field> = OLD.<field>;
  SET @DISABLE_TRIGER_other_trigger=NULL;
END
//
DELIMITER ;

MySQL 转储: mysqldump --版本

mysqldump Ver 10.13 Distrib 5.5.46,适用于 debian-linux-gnu (x86_64)

有人有想法吗?

【问题讨论】:

    标签: mysql unix mysqldump


    【解决方案1】:

    mysqldump -u &lt;USER&gt; -p &lt;db_name&gt; &gt; mysqldump.sql

    并使用导入

    mysql -u &lt;USER&gt; -p &lt;db_name&gt; &lt; mysqldump.sql

    对我有用。希望对您有所帮助。

    【讨论】:

    • 我错过了什么吗?我也这样做(只是,mysqldump 有更多参数)。在我的“mysqldump.sql”中,一张表没有 INSERT-Statements。
    猜你喜欢
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多