MYSQL-重做系统恢复MYSQL过程

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

重要的事情说三遍。

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

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

2、建立配置文件D:Program Filesmysql-5.7.18-win32my.ini,内容为

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

4、添加环境变量PATH=D:Program Filesmysql-5.7.18-win32in

5、打开cmd,进入D:Program Filesmysql-5.7.18-win32in,执行mysqld --initialize

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

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

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

9、后面终于成功启动了。却连接成功后执行对原数据的一个select后服务瞬间停止。查看日志D:Program Filesmysql-5.7.18-win32dataGC-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 重启服务,再连进去查询,终于恢复了!!!

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

原文地址:https://www.cnblogs.com/qggg/p/6820479.html