一、背景与故障描述:
一次部署一个新项目的时候,根据项目文档要求,对C:ProgramDataMySQLMySQL Server 5.7 下的my.ini文件中的max_allowed_packet=4M项进行了修改,将原来的4M改为16M后,连接数据库时显示如下故障:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
二、解决步骤:
1、尝试重新启动mysql服务
在窗口界面的服务列表找到mysql57服务,显示是启动状态,但启动与停止按钮为灰色,无法重新启动。
以管理员权限运行cmd,在命令行模式下使用 net start MySQL57 显示:“MySQL服务正在启动或停止中,请稍候片刻后再试一次”
继续在管理员模式下使用“tasklist | findstr “mysql””命令查找,存在mysql残留进程。
使用“taskkill/f /t /im mysqld.exe”杀死全部mysql残留进程
再使用net start mysql57启动,结果显示
MySQL57 服务正在启动 …
MySQL57 服务无法启动。
2、尝试重新注册mysql服务
先备份C:ProgramDataMySQLMySQL Server 5.7下的data目录。
使用mysqld –remove mysql57命令卸载mysql服务,若出现“Service successfully removed”,即成功。
使用mysqld –initialize-insecure命令初始化mysql,然后再使用mysqld.exe –install命令重新注册MySQL服务 此时窗口会出现“Service successfully installed”
使用net start mysql 启动mysql成功
3、恢复原data中的数据到新的data目录中
停掉mysql服务,为确保安全,先备份新的data目录中的内容后清空里面的内容。
然后把旧data中的内容copy到新的data中后启动mysql
登录mysql后检查,原来的表已经恢复成功。注意这里的MySQL密码是旧的data数据库中的密码