Mysql服务无法通过cmd启动,原因是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql服务无法通过cmd启动,原因是啥?相关的知识,希望对你有一定的参考价值。
我一开始安装的是5.7的免安装版,也出现了同样的问题。用mysqld -console输出了错误信息,有一条错误信息是data目录下没有mysql文件夹balabalabala。。后来我remove了这个版本的mysql,重新解压缩了5.6的免安装版本,发现这个解压缩以后包含data文件夹(5.7的那个data文件夹是我自己建的),且data里边有mysql文件夹,再配置安装后就启动成功了。 参考技术A 需要cmd的管理员权限运行,输入net start mysql回车即可。MySQL 服务无法启动是怎么回事?
rt昨天装的mysql今天服务死活不能启动,百度搜不到答案,求大神帮忙
参考技术A MySQL数据库在升级到5.7版本后,和之前的版本有些不一样,没有data文件夹,我们都知道MySQL数据库文件是保存在data文件夹中的,网上有人说把5.6版本的data文件夹拷贝一个,这种说法听听都不靠谱,我也试了,确实能够登录,但是无法修改管理员密码,下面还是给个标准的解决方法。安装好MySQL5.7后,打开cmd命令窗口,并且进入到MySQL安装目录中的bin目录,然后输入如下命令回车即可:
mysqld --initialize-insecure --user=mysql
执行完上面命令后,MySQL会自建一个data文件夹,并且建好默认数据库,登录的用户名为root,密码为空,后面的操作就跟之前版本一样了 参考技术B 故障处理
移除当前使用的 redo log 文件,然后可以试着启动数据库,结果启动失败!
提示:
[ERROR] InnoDB: Page [page id: space=0, page number=0] log sequence number 178377412422 is in the future! Current system log sequence number 165909011496.
这样的错误,这是因为 MySQL writer 线程按照配置的时间间隔以 page 为单位刷新 buffer 数据到磁盘。当数据刷新到磁盘的时候,新写入磁盘的 page 包含了较新的 LSN,此时系统 system 表空间头的 LSN 并没有同步更新,通常这是检查点线程的工作。在正常的崩溃恢复中,MySQL 可以借助 redo log 来进行前滚和回滚,但是此时 redo log 已经被我们删掉了,MySQL 无法进行恢复操作。此时,我们设置 innodb_force_recovery=3 来强制启动 MySQL,仍然启动不成功,改成 4 后启动了!
再使用 mysqldump 导出备份,结果噩梦又降临了!MySQL 又 crash 了。
提示:
InnDB: Failed to find tablespace for table......
设置参数 innodb_force_recovery=5,数据库仍然启动失败,再设置成 6,启动成功!用 sqldump 顺利把数据备份出来了!
再初始化数据库,把刚刚备份的数据库导入,数据库恢复成功完成!
参数说明
这里的关键是设置 innodb_force_recovery 参数,对应这个参数的说明如下:
1. SRV_FORCE_IGNORE_CORRUPT:忽略检查到的 corrupt 页;
2. SRV_FORCE_NO_BACKGROUND:阻止主线程的运行,如主线程需要执行 full purge 操作,会导致 crash;
3. SRV_FORCE_NO_TRX_UNDO:不执行事务回滚操作;
4. SRV_FORCE_NO_IBUF_MERGE:不执行插入缓冲的合并操作;
5. SRV_FORCE_NO_UNDO_LOG_SCAN:不查看重做日志,InnoDB 存储引擎会将未提交的事务视为已提交;
6. SRV_FORCE_NO_LOG_REDO:不执行前滚的操作。
以上是关于Mysql服务无法通过cmd启动,原因是啥?的主要内容,如果未能解决你的问题,请参考以下文章