王劣劣

不想写作业,也不想写作业.

~~~~~~~


使用mysql data 文件夹恢复数据库

前阵子领导给了我一个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 typechcon -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.so plugin_dir=/usr/lib64/mysql/plugin
  • 重启后如果依旧报错可以尝试移出 ib_logfile 文件