本博客的MySQL版本:mysql-5.7.20-winx64
本来我的MySQL服务是好好的启动着的,path是:“E:mysql\mysql-5.7.20-winx64\bin”,刚刚突发奇想,把它的path换了一下,改成:“E:\mysql-5.7.20-winx64\bin”,即直接放在E盘下面=.=,微强迫症……T.T,结果,服务不能用了(/哭笑不得),这个坑自己跳出来吧~
出现的错误如下
错误1:“ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)”
错误2:“发生系统错误 2。 系统找不到指定的文件。”
错误3:“发生系统错误 1058。 无法启动服务,原因可能是已被禁用或与其相关联的设备。”
mysqld和mysql的区别
首先要理解mysqld和mysql的区别,根据官方文档:mysqld — The MySQL Server和mysql — The MySQL Command-Line Tool,其实从官方对mysqld和mysql的名称解释上就能很明显的看出它们的不同=.=。
官方解释:
“mysqld, also known as MySQL Server, is the main program that does most of the work in a MySQL installation.”
“mysql is a simple SQL shell with input line editing capabilities. It supports interactive and noninteractive use. ”
这两句英语大家自行体会就是~
所以,mysqld是MySQL服务器,属于服务端程序,而mysql是SQL语句命令行工具,属于命令行客户端程序,要想使用客户端程序,服务的程序必须运行,因为客户端通过连接服务器来访问数据库,通过mysqld --version
和mysql --version
也可以看出来:
PS E:\mysql-5.7.20-winx64\bin> mysqld --version
E:\mysql-5.7.20-winx64\bin\mysqld.exe Ver 5.7.20 for Win64 on x86_64 (MySQL Community Server (GPL))
PS E:\mysql-5.7.20-winx64\bin> mysql --version
E:\mysql-5.7.20-winx64\bin\mysql.exe Ver 14.14 Distrib 5.7.20, for Win64 (x86_64)
解决办法
如果你的MySQL服务突然不能用了,不要怕,对于前两个错误,可以通过把MQL Server移除掉,然后重新安装的方式来解决,即在bin目录下,
执行命令:mysqld --remove
,如果出现“Service successfully removed”,说明服务移除成功,
再执行:mysqld --install
,如果出现“Service successfully installed”,说明安装成功,
此时再执行命令:net start mysql
一般是没有问题。
如果还是不行,或者出现了问题3,有一个终极办法,就是把MySQL从注册表中删除,然后再重新执行上面的命令,就没有问题了。
删除注册表中的MySQL:
运行:regedit
然后可以看到:
找到MySQL,点击“编辑”,然后删除。
【注:】在我解决问题的过程中,发现网上有的方法是对my.ini文件进行修改,在我安装mysql该版本伊始,我就没发现安装包里有这个文件,安装过程中也没有手动创建过这个文件,以后有机会再安装一次会补上博客~