mysql 备份数据迁移,出错的处理

项目历史遗留/usr/lib/mysql 下所有数据文件,之前用Debian 下的mysql5.1 的MyISAM引擎,现在机器是ubuntu,只有mysql5.5,mysql5.6 默认InnoDB引擎,恢复的过程。

1.Ubuntu上安装mysql5.5,把/usr/lib/mysql 下所有数据文件拷贝到Ubuntu系统中相应目录,并设置文件权限和owner。

启动 sudo service mysql start

报错,/var/log/mysql/error.log 各种文件写、创建错误。

把默认engine从InnoDB变成MyISAM需要重启,而mysql 进程重启失败。show engines; 没有好办法。

2.从Debian 上mysql5.1 备份需要的数据库,在Ubuntu 上mysql5.5 恢复。

mysqldump -u root -p[password] db_sth > db_sth.sql

报错:mysqldump: Got error: 1286: Unknown table engine ‘InnoDB‘ when using LOCK TABLES

mysql -u root -p[password]

use db_sth;

show tables;

一个个的check table:check table table1; 直到报错,{Msg_type: Error, Msg_text: Unknown table engine ‘InnoDB‘ Corrupt}

repair table table1; 报错相同。

my.cnf 里配置datadir 下,寻找目录下文件 db_sth/table1.frm(table format), db_sth/table1.MYD(MyData), db_sth/table1.MYI(MyIndex),发现table1.MYD 和table1.MYI 都丢失了。所以无法repair,同时命令myisamchk 也无法使用。

drop table table1;

mysqldump -u root -p[password] db_sth > db_sth.sql

得到备份文件。table1 这个表无法恢复。

时间: 2024-10-11 16:29:31

mysql 备份数据迁移,出错的处理的相关文章

Django项目的创建与介绍.应用的创建与介绍.启动项目.pycharm创建启动项目.生命周期.三件套.静态文件.请求及数据.配置Mysql完成数据迁移.单表ORM记录的增删改查

一.Django项目的创建与介绍 ''' 安装Django #在cmd中输入pip3 #出现这个错误Fatal error in launcher: Unable to create process using '"' #可以直接用 python3 -m pip 代替 pip3 #这个问题是pip3 版本过低直接在cmd中执行 python3 -m pip install --upgrade pip 更新pip3 # 在指定解释器环境下安装django 1.11.9 # 在真实python3环境

mysql 数据库数据迁移 The user specified as a definer ('root'@'%') does not exist 解决方法

从一个数据库数据迁移到本地localhost 程序在调用到数据库的视图时报错,直接在数据库中打开视图时也报错,类似: mysql 1449 : The user specified as a definer ('montor'@'%') does not exist 经查,是权限问题,解决办法: 运行:grant all privileges on *.* to [email protected]"%" identified by "."; 之后打开视图时便不会报错

Mysql(三) ------数据迁移备份(针对数据量很大的情况)

新跳槽了一家公司,上来就是数据库调优和数据迁移.调优那部分后面再补上来.公司目前用的是5.1的数据库,很老了,而且随着业务的发展需要做读写分离和主从复制.想把所有的数据都挪到新库上去.但这个库大概有60G的数据.主要思路: 1.创建用户,并授权 2.搭建主从,做到主从同步,数据目前先保持一致,在切换主从同步切换ipMysql5.1已有数据量了,为保证数据的一致性.故需要锁库,等数据导入后再解锁 3.需要注意从库和主库的引擎,字符集show variables like 'character_se

MySQL 备份数据那点事

mysqldump 什么是 mysqldump ? mysqldump 是 MySQL 用于执行逻辑备份的一款工具,可以根据原始数据库对象以及表的定义和数据来生成一系列可以被执行的 SQL 语句. 通常我们用它作为备份或者迁移数据. mysqldump 命令还可以输出成 CSV 文件,其他边界的文本或者 XML 格式. 如何使用 mysqldump? 导出整个数据库(包含数据) mysqldump -u username -p dbname > dbname.sql 导出数据库结构 mysqld

一句命令完成MySQL的数据迁移(轻量级数据)

有时候我们需要将数据库迁移的本地,对于数据量不大的数据完全可以采用下面的命令实现,如果数据量比较大,建议使用专业的工具,例如帝国备份王等 用管道符将mysqldump的输出流和mysql的输入流串接在一起,管道符真是一个伟大的发明. mysqldump -uXXX -pYYY -h192.168.4.98 -P3306 DBNAME --skip-lock-tables | mysql -uroot -h127.0.0.1 DBNAME 

定期从Docker上部署的MySQL备份数据

前段时间公司停电,正巧赶上周一领导要开会要过一遍项目,然而项目所依赖的MySQL数据库是直接部署在宿主机,且因为各人部署方式不同的原因,花了很久才在开会前启动起来.于是开完会后,我第一件事就是把原先依赖的MySQL数据库迁移到Docker上,又另外写了一个脚本定时将Docker上部署的MySQL数据库备份出来,而且我们的脚本不单单可以指定要备份的数据库,还要将备份出来的SQL文件打包成压缩文件,并以一定的规范来命名,比如:test_2019-10-11-17.zip,test是前缀,2019-1

mysql数据库数据迁移方法

说明:这里不讨论命令行还有通过navicat等工具的做法,这里只讨论在mysql坏掉(不能启动)的情况下,怎么办. 方法: a) 先来看mysql数据库文件的情况: mysql坏掉了,不管是linux还是windows版本,mysql有个数据库文件目录data目录,如下图: (注意linux版上面的是my.cnf差不多) 然后data目录里面类似这样: 通过观察可以知道里面一个个文件夹如world这些就是一个个database.进入这个文件就是类似下面两种情况: 情况一:           

mysql 备份数据语句

rem ******MySQL backup start********@echo offforfiles /p "D:\website\备份\数据库日常备份" /m backup_*.sql -d -30 /c "cmd /c del /f @path"set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%""C:\Program Fil

MySQL数据库数据迁移:从一个服务器到另一个服务器

需要两个服务器数据库版本相同才可迁移 1:单个或多个数据库 mysqldump -h远程ip -u用户 -p密码 -P3306 --default-character-set=utf8 --databases 单个或多个数据库名称空格分开 | mysql -h127.0.0.1 -uroot -p -P3306 执行后输入本地数据库密码即可 2:所有数据库 mysqldump -h远程ip -u用户 -p密码 -P3306 --default-character-set=utf8 --all-d