当我遇到这错误的时候,我去网上也找过对应解决方法,出现这个的原因有很多种情况

大多是解决Linux系统里的

我是windows系统里的MySQL服务出问题了,所有那些方法对我来说毫无意义.

好了,说一下我的解决办法,其实也很简单

只需要卸载mysql服务,注册表也要删干净,也要把环境变量删了,卸载之前做好数据备份,再去安装MySQL服务

重点来了: 在配置MySQL服务和数据存储路径时,要保存在系统指定的默认路径下,不然很有可能

导致再次报同样的错

具体操作可以往下观看:

MySQL数据库的卸载

步骤一:软件的卸载准备

学习网络编程时,TCP/IP协议程序有服务器端和客户端。mysql这个数据库管理软件是使用TCP/IP协议。我们现在要卸载的是mysql的服务器端,它没有界面。

【计算】–>右键–>【管理】–>【服务】–>【mysql的服务】–>【停止】

步骤二:软件的卸载

方式一:通过控制面板卸载

步骤三:清理残余文件

如果再次安装不成功,可以卸载后对残余文件进行清理后再安装。

(1)服务目录:mysql服务的安装目录

(2)数据目录:默认在C:\ProgramData\MySQL

如果自己单独指定过数据目录,就找到自己的数据目录,例如:

注意:请在卸载前做好数据备份

在操作完以后,需要重启计算机,然后进行安装即可。如果仍然安装失败,需要继续操作如下步骤四。

步骤四:清理注册表(选做)

如何打开注册表编辑器:在系统的搜索框中输入regedit

  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL服务 目录删除

  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL服务 目录删除

  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL服务 目录删除

  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MySQL服务 目录删除

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL服务目录删除

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL服务删除

注册表中的ControlSet001,ControlSet002,不一定是001和002,可能是ControlSet005、006之类

步骤五:清理服务列表中的服务名

如果在windows操作系统,删除注册表后,在服务列表中仍然存在原来的服务名,可以通过如下命令删除(必须是以管理员身份运行才能删除)

scdelete服务名

步骤六:清理原来的环境变量

找到path环境变量,将其中关于mysql的环境变量删除,切记不要全部删除。

例如:删除 C:\ProgramFiles\mysql\MySQLServer5.7\bin; 这个部分

MySQL数据库的安装

  • 双击mysql-installer-community-5.7.28.0.msi,进入安装界面后选择Custom自定义安装,点击Next

  • 在左侧目录中选择MySQL Server 5.7.28 -X64,点击加载到右侧,再点一下右边要安装的产品名 ,在右下角会出现Advanced Options,单击它可以设置安装路径

  • 这里选择默认位置,下图是自定义位置(不用管),点击OK。注意,安装目录避免空格和中文

  • 点击Next下一步

  • 点击Execute执行安装

    有的可能会出现提示需要先安装C++动态库等,那就先安装C++动态库,没有提示说明操作系统中有你需要的动态库。

  • 安装完成,点击Next下一步

  • 点击Next下一步

  • 点击Next下一步

  • 将MySQL配置类型选择Development Computer开发电脑设置,点击Next下一步

  • 设置MySQL密码,因为管理员用户为root,学习初期建议将MySQL数据库密码也设置为root,设置完成后,点击Next下一步

  • 设置Windows Service 系统服务,设置完毕后点击Next下一步

  • 日志设置,不做任何修改,点击Next下一步

  • 高级设置,不做任何修改,点击Next下一步

  • 点击Execute执行设置

  • 安装完成,点击Finish完成

MySQL数据库服务的启动和停止

MySQL软件的服务器端必须先启动,客户端才可以连接和使用使用数据库。

方式一:图形化方式

  • 计算机(点击鼠标右键)==》管理(点击)==》服务和应用程序(点击)==》服务(点击)==》MySQL57(点击鼠标右键)==》启动或停止(点击)

  • 控制面板(点击)==》系统和安全(点击)==》管理工具(点击)==》服务(点击)==》MySQL57(点击鼠标右键)==》启动或停止(点击)

  • 任务栏(点击鼠标右键)==》启动任务管理器(点击)==》服务(点击)==》MySQL57(点击鼠标右键)==》启动或停止(点击)

方式二:命令行方式(以管理员身份运行cmd)

启动 MySQL 服务命令:net start MySQL57停止 MySQL 服务命令:net stop MySQL57

MySQL数据库环境变量的配置

环境变量名操作环境变量值
MYSQL_HOME新建C:\Program Files\MySQL\MySQL Server 5.7
path编辑%MYSQL_HOME%\bin

或者直接

环境变量名操作环境变量值
path编辑C:\Program Files\MySQL\MySQL Server 5.7\bin

MySQL数据库客户端的登录

方式一:MySQL自带客户端

开始菜单==》所有程序==》MySQL==》MySQL Server 5.7==》MySQL 5.7 Command Line Client

说明:仅限于root用户

方式二:命令行

mysql -h 主机名 -P 端口号 -u 用户名 -p密码

例如:mysql -hlocalhost -P3306 -uroot -proot 

注意:

(1)-p与密码之间不能有空格,其他参数名与参数值之间可以有空格也可以没有空格

mysql -hlocalhost -P3306 -uroot -proot

(2)密码建议在下一行输入

mysql -h localhost -P 3306 -u root -pEnter password:****

(3)如果是连本机:-hlocalhost就可以省略,如果端口号没有修改:-P3306也可以省略

简写成:

mysql -u root -p123456

连接成功后,有关于MySQL Server服务版本的信息,还有第几次连接的id标识。

也可以在命令行通过以下方式获取MySQL Server服务版本的信息

登录后,通过以下方式查看当前版本信息:

方式三:可视化工具(建议使用)

例如:Navicat Preminum,SQLyog 等工具

还有其他工具:mysqlfront,phpMyAdmin

修改my.ini配置文件(重点)

该文件在你配置的MySQL的数据存储路径下

ProgramData是隐藏文件,需要打开显示隐藏文件的功能

在路径:C:\ProgramData\MySQL\MySQL Server 5.7 找到my.ini文件

​ 修改内容1: 找到[mysql]命令,大概在63行左右,在其下一行添加 default-character-set=utf8 修改内容2: 找到[mysqld]命令,大概在76行左右,在其下一行添加 character-set-server=utf8 collation-server=utf8_general_ci ​ 修改完毕后,重启MySQL57服务

cmd上登录MySQL服务,查看编码和排序方式,最后面的 ; 分号不能少

show variables like 'character_%';或者:show variables like'%char%';show variables like 'collation_%';

  • 如果框里是一样的就说明配置对了