MySQL数据库从ibd和rfm中恢复(zabbix数据库)

1、新建数据库 create database zabbix default charset utf8;

2、use zabbix;

3、设置表的默认字段模式,具体根据IBD文件中的格式来设置,set global innodb_file_format=Barracuda;

4、设置不进行外键检查 set foreign_key_checks=0;

5、创建新的表,总的有127个表。创建表的时候format要设置成动态dynamic。CREATE TABLE `users` (

`userid`                 bigint unsigned                           NOT NULL,

`alias`                  varchar(100)    DEFAULT ''                NOT NULL,

`name`                   varchar(100)    DEFAULT ''                NOT NULL,

`surname`                varchar(100)    DEFAULT ''                NOT NULL,

`passwd`                 char(32)        DEFAULT ''                NOT NULL,

`url`                    varchar(255)    DEFAULT ''                NOT NULL,

`autologin`              integer         DEFAULT '0'               NOT NULL,

`autologout`             integer         DEFAULT '900'             NOT NULL,

`lang`                   varchar(5)      DEFAULT 'en_GB'           NOT NULL,

`refresh`                integer         DEFAULT '30'              NOT NULL,

`type`                   integer         DEFAULT '1'               NOT NULL,

`theme`                  varchar(128)    DEFAULT 'default'         NOT NULL,

`attempt_failed`         integer         DEFAULT 0                 NOT NULL,

`attempt_ip`             varchar(39)     DEFAULT ''                NOT NULL,

`attempt_clock`          integer         DEFAULT 0                 NOT NULL,

`rows_per_page`          integer         DEFAULT 50                NOT NULL,

PRIMARY KEY (userid)

) ENGINE=InnoDB ROW_FORMAT=DYNAMIC CHARACTER SET utf8;

6、其他表类似

7、删除创建表后生成的ibd文件,alter table `users` discard tablespace; (其他表类似)

8、把要恢复的旧的ibd文件复制到当前zabbix的数据库目录中,cp /xx/users.ibd /zabbix/users.ibd;  (其他表类似)

9、修改所有者,chown mysql:mysql /zabbix/users.ibd; (其他表类似)

10、恢复ibd数据到表中,alter table `users` import tablespace; (其他表类似)

11、zabbix更改数据库的名字后要修改两个地方,zabbxi_server.conf 和 zabbix.conf.php

PS:创建新数据库和表时,数据库引擎INNODB,库和表的编码格式CHARASET,FORMAT格式都要和原来的一致。

你可能感兴趣的:(MySQL数据库从ibd和rfm中恢复(zabbix数据库))