前阵子领导给了我一个500多G 的数据库备份移动硬盘要我把数据恢复出来,说是之前的老数据备份,其实就是 mysql 的 data 文件夹.
查完资料在一台 window 电脑上简单的试了下,直接替换掉新安装的 mysql 指向的数据文件夹就行.
今天拿到了一台服务器,新装了 centos6系统,昨天把备份拷贝上去,上午就恢复了一下.
安装mysql
- 如果是之前有安装过最好是删除干净或者把数据先备份出来.
- 安装程序
# yum install mysql mysql-server mysql-devel -y - 设置随机启动
# chkconfig mysqld on - 检查是否设置成功
# chkconfig --list |grep mysql,2,3,4,5显示 on 即为成功 - 启动 mysql
# service mysqld start - 设置 root 密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('rootpassword'); - 刷新权限
flush privileges; - 测试连接
mysql -u root -p
复制数据
- 使用 mv 移动备份数据data文件内 ibdata1 ,ib_logfile0/1/2及数据库文件到
/var/lib/mysql内,注意不要复制新安装数据库文件下的同名数据库,比如 mysql,information_schema. - 修改目录权限
chown -R mysql:mysql /var/lib/mysql - 修改selinux的content type
chcon -R -t mysqld_db_t /var/lib/mysql - 重启 mysql 查看数据库
遇到的问题
当我对恢复后的数据库进行查询的时候报错 ERROR 1286 (42000): Unknown table engine ‘InnoDB’,经查询是因为新版本的 mysql 默认不安装InnoDB插件,需要手动安装一下.
解决办法
- 修改
‘/etc/my.cnf,添加
ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.soplugin_dir=/usr/lib64/mysql/plugin - 重启后如果依旧报错可以尝试移出
ib_logfile文件