MySQL 5.5 数据还原遇的棘手问题

场景:

系统版本:CentOS 6.4
MySQL版本:5.5.35-log Source distribution
逻辑备份命令:mysqldump
还原数据命令:source

条件:

备份文件
[[email protected] ~]# ll -d /tmp/cloudTest.sql 
-rw-r--r-- 1 root root 1575809806 2月  28 09:04 /tmp/cloudTest.sql

恢复现场:

[[email protected] ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.35-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> create database cloudTest;
mysql> user cloudTest;
mysql> set session sql_log_bin = 0
mysql> source /tmp/cloudTest.sql;

......(执行时长25分钟左右)
ERROR 1231 (42000): Variable ‘time_zone‘ can‘t be set to the value of ‘NULL‘
ERROR 1231 (42000): Variable ‘sql_mode‘ can‘t be set to the value of ‘NULL‘
ERROR 1231 (42000): Variable ‘foreign_key_checks‘ can‘t be set to the value of ‘NULL‘
ERROR 1231 (42000): Variable ‘unique_checks‘ can‘t be set to the value of ‘NULL‘
ERROR 1231 (42000): Variable ‘character_set_client‘ can‘t be set to the value of ‘NULL‘
Query OK, 0 rows affected (0.00 sec)

ERROR 1231 (42000): Variable ‘collation_connection‘ can‘t be set to the value of ‘NULL‘
ERROR 1231 (42000): Variable ‘sql_notes‘ can‘t be set to the value of ‘NULL‘

解决办法:

[[email protected] ~]# vim /etc/my.cnf
[mysqld]
max_allowed_packet = 500M

[mysqldump]
quick
max_allowed_packet = 500M
[[email protected] ~]# service mysqld restart
再次执行恢复现场操作
[[email protected] ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.35-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> create database cloudTest;
mysql> user cloudTest;
mysql> set session sql_log_bin = 0
mysql> source /tmp/cloudTest.sql;
时间: 2024-10-25 15:16:14

MySQL 5.5 数据还原遇的棘手问题的相关文章

mysql中的数据备份与还原

一.有三种备份方式: 1. 数据表文件备份 2. 单表数据备份 3. SQL备份 4. 增量备份 二.mysql中的存储引擎 主要有两种:myisam 和 innodb. -- 免费的 其他收费的还有:BDB, Memory, Archive innodb的存储方式:表结构单独存放,所有数据都存储在ibdata1文件中. myisam的存储方式:表.数据和索引全部单独分开存储. 二.数据表文件备份与还原 直接复制数据库目录下的文件夹复制对应的表结构和数据文件,还原的时候直接放回去即可. 但是此方

MySQL之XtraBackup实现完全备份、增量备份、数据还原

XtraBackup:是一个开源的免费的备份工具,支持热备份,对Innodb和MyISam存储引擎都支持备份,Innodb为热备.MyISam为温备份.且支持将备份结果进行压缩存放.支持部分备份(如只备份某个库或者某个库中的某个表).支持即时点数据还原.支持完全备份.支持增量备份.支持并行备份.流式备份.并行备份压缩.支持将单个表数据从一个数据库中导出然后导入另一个数据库中.支持将表恢复到一个不同的数据库server上 mylvmbackup:是一款可以实现自动化对LVM逻辑卷上的数据实现几乎热

mysqldump备份及数据还原

mysqldump建议使用在10g以下的数据进行备份,是mysql数据库的逻辑备份 mysqldump 指令介绍 -A 所有表  -all-databases -B   --databases   db1 db2 ...: 备份指定的多个库,同时创建库(不能跟A同时使用) -x 锁表   --lock-all-tables    请求锁定所有表之后再备份,对MyISAM.InnoDB.Aria做温备 --single-transaction: 能够对InnoDB存储引擎实现热备:(要确定表是in

MySQL的备份与还原

MySQL备份和还原,都是利用mysqldump.mysql和source命令来完成的. 1.Win32下MySQL的备份与还原 1.1 备份 开 始菜单 | 运行 | cmd |利用"cd /Program Files/MySQL/MySQL Server 5.0/bin"命令进入bin文件夹 | 利用"mysqldump  -u 用户名 -p databasename >exportfilename"导出数据库到文件,如mysqldump -u root

用Mysqldump实现全库备份+binlog的数据还原

随着业务量的增长,数据库也是成倍增长,原来一直使用的全库备份不再适合现在的数据库了,动辄就备份10G-20G,太占用磁盘空间,所以就考虑用更简洁更快速更节省磁盘空间的备份方法,这就想到了使用binlog日志来进行备份和恢复,下面是具体实施的方法: 环境介绍: 操作系统:Centos 7.2 数据库:Mysql 5.6 一.安装Mysql和改配置文件 安装就不具体介绍了,网上教程很多,配置文件需要添加以下选项: vim /etc/my.cnf log_bin = mysql-binlog    #

java实现的MySQL自动备份和还原(struts2+Hibernate)---兼容 window+Linux

相信很多朋友都经历过数据库出问题的情况,我也同样(见我的上一篇博文:phpmyadmin误删表后的恢复过程(心惊胆跳啊)   ).如果数据很大或者很重要,那么恢复起来是相当困难的,所以我们在做一个相对完善的系统时,数据库的备份/还原功能是必不可少的.本文将在javaEE环境下实现MySQL的自动备份/还原,使用了struts2和hibernate框架,MySQL版本是5.1.16. 下图展示的是web application的执行流程, Timer是在一个随着application启动而启动的s

MySQL数据库备份与还原

备份数据库 1.使用mysqldump命令备份 备份一个数据库:mysqldump -u 用户名 -p密码 数据库名 [表名1,表名2...]>备份文件路径及名字.sql 如果没有表名,则备份整个数据库 eg: mysql -u root -p test studentinfo >D:\test.sql 备份多个数据库:mysqldump -u 用户名 -p --databases 数据库1,数据库2...  >  备份文件路径及名字.sql 备份所有数据库:mysqldump -u 用

MySQL 定时删除数据

存储过程: 1. MySQL 5.0 以后开始支持存储过程. 2. 我们常用的SQL语句在执行的时候需要先编译,然后执行,而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中(因而执行速度比较快),用户通过制定存错过程的名字并给定参数来调用执行它. Event事件: 1. MySQL 5.1以后开始引入event概念: 2. event 即"时间触发器",通过在特定时间触发SQL语句或者存储过程执行. MySQL 定时删除数据实现方法:mysql存储过程 + even

mysql数据库备份与还原命令

还原一个数据库:mysql -h localhost -u root -p123456 www 备份一个数据库:mysqldump -h localhost -u root -p123456 www > d:\www2008-2-26.sql 其中WWW为数据库名 //以下是在程序中进行测试 //$command = “mysqldump –opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile”; $command=