msyqlhotcopy和mysqldump有什么区别

msyqlhotcopy和mysqldump有什么区别,第1张

1mysqlhotcopy

- 优点

- 速度快

- 缺点

- 只支持MyISAM引擎

- 需要安装perl语言及配置支持环境,因为hotcopy由perl写成

- 选项参数较少,功能不够强大,比如不提供--where选项,无法选取某部分数据备份

- 只能运行在数据库目录所在的机器上

2mysqldump

- 优点

- 支持MyISAM和innodb引擎

- 只要装了mysql就可以用,无需别的 *** 作,不存在平台兼容问题

- 参数较多,功能强大,可以备份整个数据库,也可以备份单个表,还可以备份单个表的部分数据

- 可生成多种文件,还可以用于从一个MySQL服务器向另一个服务器复制数据

- 缺点

- 速度没有那么快

综述

如果你只是想临时复制一张表,或者一个数据库,且数据库引擎都是MyISAM,使用速度较快的mysqlhotcopy比较方便;但是如果你需求比较特别,想备份一张表的部分数据,需要使用mysqldump

修改表引擎

1对每个InnoDB表执行 ALTER TABLE table_name ENGINE=MyISAM;

2停止Mysql服务;

3移除InnoDB相关文件ibdata1等;

4修改mycnf中的参数,添加innodb_file_per_table;

在mycnf中[mysqld]下设置

innodb_file_per_table=1

5启动Mysql服务;

6将刚才修改后的那些表改回InnoDB:ALTER TABLE table_name ENGINE=InnoDB;

导出InnoDB表

1使用mysqldump命令导出所有的InnoDB表,例如: mysqldump –add-drop-table –extended-insert –disable-keys –quick ‘db_name’ –tables ‘tbl_name’ > ‘db_nametbl_namesql’

2删掉这些表:

◦SET FOREIGN_KEY_CHECKS=0;

◦DROP TABLE db_nametbl_name;

◦DROP TABLE db_name1tbl_name1;

◦–– DROP other tables here…

◦SET FOREIGN_KEY_CHECKS=1;

3停止Mysql服务;

4移除InnoDB相关文件ibdata1等;

5修改mycnf中的参数,添加innodb_file_per_table;

6启动Mysql服务;

7在Mysql Console下导入表:

◦SET FOREIGN_KEY_CHECKS=0;

◦SOURCE db_nametbl_namesql;

◦SOURCE db_name1tbl_name1sql;

◦–– SOURCE other files here…

◦SET FOREIGN_KEY_CHECKS=1;

导出整个数据库

这个是我常用的,虽然他和耗磁盘和时间,但是确实是最简便的:

1导出所有的数据: /usr/bin/mysqldump ––extended-insert ––all-databases ––add-drop-database ––disable-keys ––flush-privileges ––quick ––routines ––triggers > all-databasessql

2停止Mysql服务;

3重命名mysql数据文件夹;

4修改mycnf中的参数,添加innodb_file_per_table;

5mysql_install_db重新初始化mysqld;

6开启Mysql服务;

7进入Mysql Console执行:

◦SET FOREIGN_KEY_CHECKS=0;

◦SOURCE all-databasessql;

◦SET FOREIGN_KEY_CHECKS=1;

8重启数据库测试OK就领赏去吧。

如果因为断电或者直接关机导致idb文件出错,就需要重构这些文件

[mysqld]

加 innodb_force_recovery=1

dbname参数表示数据库的名称;

table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;

BackupNamesql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;

使用root用户备份test数据库下的person表

mysqldump -u root -p test person > D:\backupsql

以上就是关于msyqlhotcopy和mysqldump有什么区别全部的内容,包括:msyqlhotcopy和mysqldump有什么区别、如何收缩Mysql的ibdata1文件、mysql如何备份数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9634697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存