记笔记是好习惯,记笔记是好习惯,记笔记是好习惯!

重要的事情说三遍。

说多了都是泪。第一次装MYSQL时候就遇到了很多问题,当时解决了忘记记录了。家里硬盘满了,于是买了个4T的硬盘重装系统。重装系统后开始了开发环境重装。Anaconda3,pycharm,mongodb,pycharm... 到了mysql时候就遇到各种问题。

1、先把mysql-5.7.18-win32从H盘挪到D:\Program Files\mysql-5.7.18-win32。

2、建立配置文件D:\Program Files\mysql-5.7.18-win32\my.ini,内容为

[mysqld]
basedir=D:\Program
Files\mysql-5.7.18-win32
datadir=D:\Program
Files\mysql-5.7.18-win32\data
tmpdir=D:\Program
Files\mysql-5.7.18-win32\MySqltemp
innodb_buffer_pool_size=64M
3、建立tmpdir。必须按照配置中的临时目录配置建立这个临时目录,不然后面启动会报错!!!

4、添加环境变量PATH=D:\Program Files\mysql-5.7.18-win32\bin

5、打开cmd,进入D:\Program Files\mysql-5.7.18-win32\bin,执行mysqld --initialize

6、把D:\Program Files\mysql-5.7.18-win32\data移到D:\Program
Files\mysql-5.7.18-win32\data1,执行mysqld
--install。成功后,就可以在系统的服务里看到mysql开头的服务了。

7、上一步成功后,把生成的data文件夹移为data2文件夹,把刚才的data1移到data。恢复原来数据,如果不备份启动会报错,data文件夹不为空。

8、执行net start mysql,报错无法启动,那么尝试mysqld --remove,反复执行几次。

9、后面终于成功启动了。却连接成功后执行对原数据的一个select后服务瞬间停止。查看日志D:\Program
Files\mysql-5.7.18-win32\data\ZGC-20170506NQH.err 最后一行为:

2017-05-06T15:44:39.138589Z 3 [ERROR] InnoDB: Trying to access page number
1784129 in space 31, space name samp_db/dd_chaptername, which is outside the
tablespace bounds. Byte offset 0, len 16384, i/o type read. If you get this
error at mysqld startup, please check that your my.cnf matches the ibdata files
that you have in the MySQL server.

多查了下,发现是日志和数据不匹配。参看:https://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html

10、于是在my.ini中添加innodb_force_recovery = 6 重启服务,再连进去查询,终于恢复了!!!

特意写了这篇日志记录下解决过程。

MYSQL-重做系统恢复MYSQL过程的更多相关文章

  1. MySQL权限系统(二). MySQL提供的特权 Privileges Provided by MySQL

    MySQL provides privileges that apply in different contexts and at different levels of operation: Adm ...

  2. mysql重做日志

    一.重做日志(redo log) 1.作用 确保事务的持久性. 防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性. 2 ...

  3. mysql:恢复mysql表结构

    mysql,frm格式恢复mysql表结构,以tuser.frm格式为例   新增数据库,如下,创建数据库名为ab   打开数据库,双击打开数据库   点右键新建表结构   新增表,里面只添加一个字段 ...

  4. 电脑重装系统后如何恢复Mysql数据库

    电脑重装系统后如何恢复Mysql数据库 一.[设置mysql的path]

  5. 电脑重装系统后如何恢复 Mysql 数据库

    电脑重装系统后如何恢复 Mysql 数据库 一.[设置mysql的path] 比如:我的mysql在:D:\DataBase\mysql-5.7.13-winx64,可以在环境变量中重新新建一个环境变 ...

  6. Linux系统下MySQL数据库的备份和恢复

    当我们MySQL数据库保存重要数据的时候,备份工作极为重要.本文介绍如何使用mysqldump备份和恢复数据,使用该方法,可以将数据库中的数据备份成一个文本文件,也可将备份好的数据库迁移到另一台的服务 ...

  7. Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复

    Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...

  8. MySQL日志系统

    body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...

  9. MySQL备份与还原详细过程示例

    MySQL备份与还原详细过程示例 一.MySQL备份类型 1.热备份.温备份.冷备份 (根据服务器状态) 热备份:读.写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份:读.写操作均中止: 2 ...

随机推荐

  1. 【转】关于在linux下清屏的几种技巧

    在windows的DOS操作界面里面,清屏的命令是cls,那么在linux 里面的清屏命令是什么呢?下面笔者分享几种在linux下用过的清屏方法. 1.clear命令.这个命令将会刷新屏幕,本质上只是 ...

  2. Timus 1005 解题报告

    题目链接 http://acm.timus.ru/problem.aspx?space=1&num=1005 题目大意 给你一堆石头,现在需要你将这堆石头分成两堆,要求两堆石头的重量相差最小, ...

  3. 解题:CF949D Curfew

    题面 整体的思路就是在均摊每个宿舍的人数,注意一个人可以跑好几次=.= 可以发现多的学生往中间跑一定能跑过宿管,所以只考虑学生们能不能及时跑到人不够的宿舍.对两边记录两个已经满足要求的宿舍,然后用前/ ...

  4. gitlab的备份与恢复与迁移

    一.gitlab的备份1.1 创建备份目录,并授权 1 2 3 4 [root@linux-node1 ~]# mkdir /data/backups/gitlab -p [root@linux-no ...

  5. PHP5下WSDL,SOAP调用实现过程

    一.基础概念 SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装 ...

  6. LocalDateTime与字符串互转/Date互转/LocalDate互转/指定日期/时间比较

    Java 8中表示日期和时间的类有多个,主要的有: Instant:表示时刻,不直接对应年月日信息,需要通过时区转换 LocalDateTime: 表示与时区无关的日期和时间信息,不直接对应时刻,需要 ...

  7. mq使用场景、不丢不重、时序性

    mq使用场景.不丢不重.时序性.削峰 参考: http://zhuanlan.51cto.com/art/201704/536407.htm http://zhuanlan.51cto.com/art ...

  8. Linux部署node环境

    # wget https://nodejs.org/dist/v8.11.4/node-v8.11.4-linux-x64.tar.xz# tar -axvf node-v8.11.4-linux-x ...

  9. 详解tomcat连接数和线程数

    前言 在使用tomcat时,经常会遇到连接数.线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector). 在前面的文章 详解Tomcat配置文件server.xm ...

  10. JavaScript 生成n位随机数

    function RndNum(n){ var rnd=""; for(var i=0;i<n;i++) rnd+=Math.floor(Math.random()*10); ...