• 作者:老汪软件技巧
  • 发表时间:2024-11-25 10:04
  • 浏览量:

起因是软件启动时控制台报错 Connection refuse,启动了数据库软件发现原有的密码已经连接不上,遂开始排查问题。

bug详情

部署环境是Windows,软件服务启动时提示无法连接数据库,经排查,没有人修改过数据库密码。

mysql服务无法启动,cmd命令行net start mysql提示系统错误5,根据提示的NET HELPMSG执行后也提示服务没有返回错误报告。

排查路线

上面的命令行执行无结果,自然第一个想到的是去找mysql本身的日志文件。其实有一个命令也能查看:mysqld --console,它会将前一次执行的日志打印出来。这次遇到的问题在其中记录为

[ERROR] InnoDB: The Auto-extending innodb_system data file './ibdata1' is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!

搜了下网上的几个方案:

停止 MySQL 服务,修改配置文件mysql.ini,增加 innodb_data_file_path = ibdata1:10M:autoextend,保存时注意文件编码必须是 ANSI 。重启 MySQL 服务停止服务,备份后删掉 Data 下的几个数据库文件,在重新启动 MySQL 服务

我照做了,但还是。然后我注意到,我在 C 盘 ProgramData 的 MYSQL 下面的这几个文件从安装后就没更新过,可这是不可能的。数据库昨天还在好好用着呢。

启动突然熄火怎么回事__启动突然车子没反应

瞅了一眼文件夹路径,疑心顿起的我打开了服务列表。win10的服务直接在任务管理器里就可以看,但任务管理器里的 “服务” 看不到对应的启动命令,于是只能打开左下角的 “打开服务” ,进入到熟悉的服务窗口,找到MySQL,右键属性,发现这里执行的文件都在 D 盘。

惊出一身冷汗的我赶紧打开环境变量窗口,不看不知道,一看原来大家都装在了 D 盘……那 C 盘为什么还有个那玩意儿啊!显然部署时遵循了不要什么东西都装在C盘的忠告,于是所有的东西都塞在了 D 盘,这下好,本牛马人生中看到了第一个爆红的D盘。

最终修改

既然原配置的磁盘已经爆满无法删除,那么首先肯定选择转移文件,将原来D盘下的MySQL安装路径与数据库存放路径全都拷贝粘贴到空间相对充足的磁盘,然后修改环境变量 Path 里的MySQL路径。

之后,修改服务里对应的执行路径,但在服务窗口无法直接修改,需要绕道注册表。找到HKEY_LOCAL_MACHINE----SYSTEM----CurrentControlSet----Services----mysql,修改右侧 ImagePath 的值。修改完毕后,回到服务窗口,刷新后启动 MySQL。

如果还是不能启动,就在命令行窗口运行 mysqld --console 查看日志,有概率是转移路径后的 MySQL 安装路径下缺少 data 文件夹,新建一个就行。

参考文章:

/X_yufei/art………/m0_63636799…


上一条查看详情 +1.1 应用部署方式演变
下一条 查看详情 +没有了