[真正完美解决]InnoDB: Attempted to open a previously opened tablespace
升级mysql到5.6后,启不了Mysql看error.log
其中关键的一行是:
InnoDB: Attempted to open a previously opened tablespace. Previous tablespace db_patients/tb_patients uses space ID: 3 at filepath: ./db_patients/tb_patients.ibd. Cannot open tablespace mysql/slave_relay_log_info which uses space ID: 3 at filepath: ./mysql/slave_relay_log_info.ibd
解决办法:
一、打开MAMP PRO,点击主界面左侧LANGUAGES中PHP,右侧Extensions分类中点击Manually enable other extensions右侧按钮(或者打开菜单栏File->Edit Template->MySQL->7.1.1(选择你的版本)),这时打开了一个文本,找到
[mysqld]
注意带上中括号,在[mysqld]下面加一行:
<span class="wp_keywordlink_affiliate"><a title="View all posts in innodb_force_recovery" href="http://blog.peos.cn/tag/innodb_force_recovery" target="_blank" rel="noopener">innodb_force_recovery</a></span> = 1
二、启动mySQL,成功后再关闭;
三、重新打开那个文本,删除添加的那一行;
四、再重启mySQL,完毕。
你以为事情完了?
事实上并没有,当你重启服务器后,重启Mysql还是会提示上面那个错,所以说事实上,根本问题还是解决。
真正的完美解决办法:
1.修改my.cnf/my.ini ,innodb_force_recovery = 1
2.先启动Mysql,service mysql(d) start
3.修改my.cnf/my.ini ,innodb_force_recovery = 0
4.重新启动Mysql,service mysql(d) restart
5.导出出错的数据库 dump …dbname……sql(命令记不全了),再删除这个出错的数据库
6.停止数据库service mysql stop
7.重启服务器
8.重启mysql(如果没有设置开机启动的话)
9.重启mysql后,导入之前备份的数据库,source sqlbak.sql。。。。额,大概意思是这样
10.再重启一下mysql试试,service mysql restart,嗯,能正常启动!
[后续]
虽然升级成功,但是后面发生很多奇怪的问题,最后又退回5.1了!
============ 欢迎各位老板打赏~ ===========
【上篇】解决android 安卓中横屏、竖屏切换 应用崩溃问题
【下篇】.net连接MySql:Unable to connect to any of the specified MySQL hosts
【下篇】.net连接MySql:Unable to connect to any of the specified MySQL hosts
与本文相关的文章
- · mysql创建用户并赋予权限
- · docker定时任务Mysql脚本
- · docker安装mysql8注意事项
- · 定时备份docker中的mysql
- · docker-compose通过容器名连接mysql
- · unity3d mysql error: The given key was not present in the dictionary.
- · mysql服务性能优化—my.cnf配置说明详解(不同内存)
- · MySQL 批量修改数据表编码及字符集
- · Your database must use ‘READ-COMMITTED’ as the default isolation level.
- · MySQL-InnoDB存储引擎
- · 将数据从mysql迁移到clickhouse
- · docker安装Mysql5.7