繁体   English   中英

mysqldump错过表数据

[英]mysqldump misses table data

我想对我的数据库进行完整的转储。 所以我用...

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

...将我的数据转储到文件(4.271.663.366字节> 3,97GB)中。 我为表找到了一条create语句,但是没有插入数据。 如果我将表单独转储到文件中,则所有工作正常。

这里一些信息:

数据库信息:

  • 桌子数量:215
  • 记录:32105706
  • 类型:InnoDB(某些MyIsam)
  • 大小:6.5 GiB

有问题的表:

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

该表的创建语句(仅通过phpmyadmin export->结构创建):

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 --version

mysqldump版本10.13 Distrib 5.5.46,用于debian-linux-gnu(x86_64)

有人知道吗?

mysqldump -u <USER> -p <db_name> > mysqldump.sql

并使用导入

mysql -u <USER> -p <db_name> < mysqldump.sql

为我做the俩。 希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM