最近在备份还原mysql的时候发现,视图还原报错,无法创建视图,在网上查了下资料,找到以下信息:
1、如果备份的数据库含有视图,还原时需要把my.ini中的character-set改为latin1,才能够还原视图。
2、还原后,需要把latin1改为gb2312,否则存储过程不能使用.
3、存储过程不能随着数据库备份,对于存储过程的还原,还是通过手工复制SQL语句,在QUERY里执行。
感觉有点麻烦,于是又寻找其它方法,通过以下方法备份mysql数据库后,再进行还原,就没有报错,视图也还原进去了:
#windows下mysql备份还原,可不用修改my.ini来还原视图(已验证)
mysqldump -uroot -p123 --default-character-set=gbk --opt --extended-insert=false --triggers -R --hex-blob -x db_name > f:\db.sql
mysql -uroot -p123 -f db_name < f:\db.sql
linux:
SQL 来备份 MyISAM 表:
/usr/local/mysql/bin/mysqldump -uroot -p123 --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob -x db_name > db_name.sql
使用以下 SQL 来备份 Innodb 表:
/usr/local/mysql/bin/mysqldump -uroot -p123 --default -character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob --single-transaction db_name > db_name.sql
参数注解:
mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。现在来讲一下 mysqldump 的一些主要参数:
--compatible=name 它告诉 mysqldump,导出的数据将和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options 等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。
--complete-insert,-c 导出的数据采用包含字段名的完整 INSERT 方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。
--default-character-set=charset 指定导出数据时采用何种字符集,如果数据表不是采用默认的latin1 字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。
--disable-keys 告诉 mysqldump 在 INSERT 语句的开头和结尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */; 和 /*!40000 ALTER TABLE table ENABLE KEYS */; 语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。
--extended-insert = true|false 默认情况下,mysqldump 开启 --complete-insert 模式,因此不想用它的的话,就使用本选项,设定它的值为 false 即可。
--hex-blob 使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。
--lock-all-tables,-x 在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 --single-transaction 和 --lock-tables 选项。
--lock-tables 它和 --lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM 表,如果是 Innodb 表可以用 --single-transaction 选项。
--no-create-info,-t 只导出数据,而不添加 CREATE TABLE 语句。
--no-data,-d 不导出任何数据,只导出数据库表结构。
--opt 这只是一个快捷选项,等同于同时添加 --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset 选项。本选项能让 mysqldump 很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用 --skip-opt 禁用。注意,如果运行 mysqldump 没有指定 --quick 或 --opt 选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。
--quick,-q 该选项在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。
--routines,-R 导出存储过程以及自定义函数。
--single-transaction 该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB 和 BDB。本选项和 --lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用 --quick 选项。
--triggers 同时导出触发器。该选项默认启用,用 --skip-triggers 禁用它。
本文转自king_819 51CTO博客,原文链接:http://blog.51cto.com/kerry/177570,如需转载请自行联系原作者

mysql备份还原(视图、存储过程)相关推荐

  1. mysql备份还原参数详解

    #windows下mysql备份还原,可不用修改my.ini来还原视图(已验证) mysqldump -uroot -p123 --default-character-set=gbk --opt -- ...

  2. linux下mysql日志管理及mysql备份还原

    linux下mysql日志管理及mysql备份还原 1.SHOW GLOBAL VARIABLES LIKE '%log%';  显示所有日志相关的选项 2.错误日志:log_error和log_wa ...

  3. Percona XtraBackup 关于 MySQL备份还原的详细测试

    Percona XtraBackup 关于 MySQL备份还原的详细测试 一. Percona XtraBackup 的优点. (1)无需停止数据库进行InnoDB热备: (2)增量备份MySQL: ...

  4. mysql 备份还原

    MySQL的备份与还原 MySQL备份和还原,都是利用mysqldump.mysql和source命令来完成的.  1.Win32下MySQL的备份与还原  1.1 备份  开始菜单 | 运行 | c ...

  5. MySQL备份还原知识要点

    数据库在使用当中都会有数据库备份工作,当数据库发生严重错误无法启动,或者数据丢失时可以及时有效地恢复数据.文章简单介绍如何备份和还原MySQL数据库. 备份数据库 使用mysqldump命令备份数据库 ...

  6. linux mysql 备份还原数据库_备份和还原MySQL数据库的简便方法

    我们现在将讨论如何备份数据库和还原MySQL.数据库的维护非常重要,因为数据库包含我们拥有的重要数据,因此,应备份数据库以避免数据丢失. 备份有两个目的.主要目的是在数据丢失(由于删除或损坏)时恢复数 ...

  7. c mysql备份还原数据库_如何备份和还原MySQL数据库?

    MySQL是一个永久存储数据的数据库服务器.如果使用MySQLServer,那么需要创建数据库备份以便从崩溃中恢复.mysql提供了一个用于备份的实用程序mysqldump.在本文中,将介绍关注与.s ...

  8. php mysql备份还原类_PHP实现MYSQL备份还原

    /** * mysql备份*/ classMysqlBackup {function __construct($filename, $config) {$this->setFile($filen ...

  9. Mysql备份还原数据库之mysqldump实例及参数详细说明

    我们在运营项目的过程中肯定会遇到备份数据库,还原数据库的情况,我们一般用一下两种方式来处理: 1.使用into outfile 和 load data infile导入导出备份数据 这种方法的好处是, ...

最新文章

  1. 百度分拆金融业务,融资19亿美元
  2. 制作旋转led_LED用蓝宝石衬底及加工工艺!
  3. leetcode459 C++ 32ms 重复子串构成的字符串
  4. C++下面 计算时间
  5. 半路出家,如何推销自己?
  6. gopher协议总结
  7. 打开文件安全警告怎么关闭?
  8. ITK入门教程(13)点集之得到点中的存储数据
  9. 祝福的游戏。。。。。。。。。
  10. 从0带您打造企业级 Vue 服务器渲染 Nuxt.js (一) 入门
  11. 数据库mysql的基本操作命令(全)
  12. Android各个版本特性简介
  13. 华为鲲鹏ARM云服务器搭建网站服务器教程
  14. 【AI视野·今日CV 计算机视觉论文速览 第172期】Tue, 10 Dec 2019
  15. HBuilder IOS 打包异常:com.apple.developer.associated-domains权利 ,解决!
  16. 通向架构师的道路(第二十六天)漫谈架构与设计文档的写作技巧
  17. md5 java 实现_MD5加密的Java实现
  18. ##if语句与if语句的嵌套
  19. 二年级上册计算题_分享14套二年级数学乘法计算题
  20. 「常见面试题」Java基础之IO模型连环炮

热门文章

  1. java pdf stamper_PDFStamper在几个PDF文件上失败(itext 5.5.1)
  2. leetcode45 跳跃游戏II 秒杀所有答案
  3. python基础小白题
  4. C++(STL):12--- list基本介绍
  5. 对于linux socket与epoll配合相关的一些心得记录
  6. 《Python Cookbook 3rd》笔记(5.19):创建临时文件和文件夹
  7. 心​理​学​家​告​诉​你​:​男​女​怎​样​才​叫​合​适
  8. 给定a和n,计算a+aa+aaa+a...a(n个a)的和(大数据处理)
  9. x264_param_t结构体参数分析
  10. JWT ( JSON Web Token ) 入门教程