Windows安装MySQL8.0时的报错汇总及解决方案

 更新时间:2024年09月13日 11:50:58   作者:Forstwolf  
据说安装MySQL是无数数据库初学者的噩梦,我在安装的时候也是查了很多资料,但是很多毕竟每个人的电脑有各自不同的情况,大家的报错也不尽相同,所以也是很长时间之后才安装成功,所以本文给大家汇总了Windows安装MySQL8.0时的报错解决方案,需要的朋友可以参考下

一、引言

先说一些没用的话,据说安装MySQL是无数数据库初学者的噩梦,我在安装的时候也是查了很多资料,看了很多博客,但是很多毕竟每个人的电脑有各自不同的情况,大家的报错也不尽相同,所以也是很长时间之后才安装成功。

一些软件的安装和环境配置有以下特点:对环境要求很高,同时对笔者这样的初学者很不友好,往往一点小的疏忽就会全盘皆失,网上的教程又不能保证能起到效果,极容易倒在迈出第一步上。而且安装不成功的话卸载会更加麻烦:卸载软件、删除相关文件夹、删除环境变量、删注册表等等 。最后要么重装系统要么永远也别想使用这个软件了,极其痛苦,

所以我希望总结一些学计算机的需要注意的东西,关于正确使用电脑的好习惯,能让你的电脑保持干净!(随时更新补充)

1、首先要有一个良好的文件组织模式,软件、工程、文档什么的分类放好。不要下载个什么东西在电脑中乱放,最后想找个什么文件找不到不说,这种方式最大的弊端就是出了问题的时候没法解决。

2、用户名、主机名、文件路径、变量路径等都不要出现中文(最好是连空格也不要有啦~),真的有无数计算机小白在这上面吃过亏了!能用英文的最好用英文,顺便还能锻炼下英语水平,更有希望过四级(doge)。

安装配置的时候一定要慎重,一个小错误就可能造成难以挽回的后果!

二、安装MySQL时的报错汇总(点击旁边的log选项卡可以查看日志)

错误1:initializing database(may take a long time)

数据库初始化产生错误

日志如下:

Log日志:
C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.32) initializing of server in progress as process 4212
mysqld: File '.\婵犮垹鐏堥弲婊勬櫠閻樼粯鎲ユ俊顖涘绾捐棄銆?bin.index' not found (OS errno 2 - No such file or directory)
The designated data directory C:\ProgramData\MySQL\MySQL Server 8.0\Data\ is unusable. You can remove all files that the server added to it.
Aborting
C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.32)  MySQL Community Server - GPL.
Process for mysqld, with ID 4212, was run successfully and exited with code 1.
Failed to start process for MySQL Server 8.0.32.
Database initialization failed.
Ended configuration step: Initializing database (may take a long time)

注:出现了中文乱码,极有可能是可能是电脑名包含中文,导致Installer在生成初始化配置时出现乱码而错误。所以检查电脑名是否包含中文和空格。

错误2:未将对象引用设置到对象的实例

Ended configuration step: Writing configuration file

错误3:最后一步失败:Updating the Start menu link

错误4:对路径的访问被拒绝

错误5:启动服务器时卡住

三、解决方案

首先,如果你在安装过程中遇到了红叉叉,那么先不要怕,将错就错,能点next的就点next,能点execute的就点execute,因为你既然出现红叉叉了,那么说明这次安装就已经寄了,那么你将要面临着重新安装的情况,随便上网查个教程,都是什么卸载程序再删除一堆文件夹还要挨个删除注册表删除环境变量,非常麻烦,所以可以利用MySQL的installer的remove功能。将错就错配置完环境的时候应该如下图所示

所以只需要直接点击旁边的remove就可以一键删除环境变量、软件、注册表这些东西,不比纯手删强多了?最主要的是这种方法删的干净,手删不仅麻烦还容易留下隐患,所以这种方法强烈推荐。

之后查看报错日志可以发现主要是数据库初始化出现了问题,既然可视化安装是没有办法了,所以选择使用命令行安装是一个很好的选择。

  • 点开Log,里面提示的就是标题写的,无法识别的参数“mysqlx_port=0.0”,大写的疑惑啊,官方的安装程序都不能跑?
  • 这个时候不管如何改,都没用了,用官方的安装程序就到这,接下来是手动操作模式
  • 第一步:找到my.ini文件,如果前面的安装程序都是默认选择的话,那my.ini的位置应该是C:\ProgramData\MySQL\MySQL Server 5.7\my.ini,找到my.ini文件后,搜索一下报错的参数mysqlx_port=0.0,其实就在最后一行,注释掉(这时候可能以为重新用官方安装程序能够继续下去,其实不能,每次它都会重新生成my.ini,然后mysqlx_port=0.0又出现了!)因为此处的文件需要更高的权限才可以修改,所以这时候需要打开my.ini文件,到最后一行,将0.0改为0,注释掉,先另存到别的地方,然后再复制到原本的my.ini文件的位置,系统会提示替换这个同名文件夹,直接点击继续(需要管理员权限)即可更改。
  • 第二步:如果前面的安装程序都是默认选择的话,那mysql的data文件应该在C:\ProgramData\MySQL\MySQL Server 5.7\Data(注意:此处的ProgramData是C盘中的一个隐藏文件夹,需要在文件夹上方导航栏【查看】->【显示】->勾选【隐藏的项目】就可以找到了),打开这个目录,把里面的文件删光
  • 第三步:找到mysqld.exe文件,可以用上一步推荐的everything,如果前面的安装程序都是默认选择的话,位置应该在C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe,找到这个文件后,在这个目录下打开cmd,最方便的方式是直接地址栏输入cmd,回车
  • 打开cmd窗口后,构建这样一个命令:mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --console --initialize-insecure,然后回车
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --console --initialize-insecure
// 根据你安装的实际版本将上面的8.0更改为你的版本号
  • (可选)有可能遇到这样的一个错误,是编码问题,打开上面找到的my.ini,另存为,选编码格式为ANSI,覆盖掉之前的那份my.ini,然后重新运行mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --console --initialize-insecure

  • 上面那一步没有报错的运行到最后,代表离成功不远了,接下来构建这样一个命令mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --console ,意思是在cmd里直接运行MySQL
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --console 
// 这里的版本号也要更改

然后在C:\Program Files\MySQL\MySQL Server 5.7\bin\这个目录下再新打开一个cmd窗口,输入命令mysql -u root,直接进入MySQL了,是的,不用密码

mysql -u root

接下来,给root用户加个密码,在MySQL内部,输入命令:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';(分号必须要!!!这里的123456就是新密码,可随意),回车

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

刷新权限命令:FLUSH PRIVILEGES;(分号必须要!!!),回车

FLUSH PRIVILEGES;

退出MySQL命令:EXIT;,回城

EXIT;

接下来验证一下密码生效了没,上一步退出来的cmd里输入:mysql -u root -p,再输入密码123456,ok,如愿进入MySQL了,这时候其实MySQL已经可以在电脑里运行了,但是是cmd运行的方式,每次都要手动输入,太麻烦了,做成系统服务,开机自动启动

mysql -u root -p

先把上面手动运行的MySQL关掉,然后打开任务管理器,如果任务管理器之前打开了,就关了重新打开,切到服务页,找MySQL字眼的服务,右键,开始,如果能够正常启动,就表示服务版的MySQL装好了,以后开机自动启动。

目前观察到win11家庭版的系统,不能用上面的方式启动MySQL服务,还找不到原因,贴一个bat命令,可以手动点击开启MySQL,新建一个txt文件,把后缀改成bat,然后把下面的代码复制进去,保存退出,尝试双击打开,如果cmd窗口不会自动关闭,保持运行,说明MySQL运行起来了

到这一步,恭喜你已经成功安装了MySQL!

以上就是Windows安装MySQL8.0时的报错汇总及解决方案的详细内容,更多关于Windows安装MySQL8.0报错问题的资料请关注脚本之家其它相关文章!

相关文章

  • MySQL报错cannot add foreign key constraint的问题解决方法

    MySQL报错cannot add foreign key constraint的问题解决方法

    这篇文章主要介绍了MySQL报错cannot add foreign key constraint的问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Mysql 数据库死锁过程分析(select for update)

    Mysql 数据库死锁过程分析(select for update)

    最近有项目需求,需要保证多台机器不拿到相同的数据,后来发现Mysql查询语句使用select.. for update经常导致数据库死锁问题,下面小编给大家介绍mysql 数据库死锁过程分析(select for update),对mysql数据库死锁问题感兴趣的朋友一起学习吧
    2015-12-12
  • MySQL常见错误有哪些_MySQL常见错误的快速解决方法

    MySQL常见错误有哪些_MySQL常见错误的快速解决方法

    MySQL常见错误有哪些呢?下面小编就为大家带来一篇MySQL常见错误的快速解决方法。现在分享个大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-03-03
  • Mysql 执行一条语句的整个过程详细

    Mysql 执行一条语句的整个过程详细

    这篇文章主要介绍了Mysql 执行一条语句的整个详细过程,Mysql的逻辑架构整体分为两部分,Server层和存储引擎层,下面文章内容具有一定的参考价值,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-02-02
  • MySQL数据库常见字段类型长度汇总大全

    MySQL数据库常见字段类型长度汇总大全

    这篇文章主要给大家介绍了关于MySQL数据库常见字段类型长度汇总大全的相关资料,需要的朋友可以参考下
    2024-05-05
  • 关于k8s环境部署mysql主从的问题

    关于k8s环境部署mysql主从的问题

    这篇文章主要介绍了k8s环境部署mysql主从的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • MySQL特定表全量、增量数据同步到消息队列-解决方案

    MySQL特定表全量、增量数据同步到消息队列-解决方案

    mysql要同步原始全量数据,也要实时同步MySQL特定库的特定表增量数据,同时对应的修改、删除也要对应,下面就为大家分享一下
    2021-11-11
  • 设置MySQL中的数据类型来优化运行速度的实例

    设置MySQL中的数据类型来优化运行速度的实例

    这篇文章主要介绍了设置MySQL中索引的数据类型来优化运行速度的实例,主要是适当使用短字节的数据类型来处理短索引,需要的朋友可以参考下
    2015-05-05
  • mysql索引失效的问题

    mysql索引失效的问题

    这篇文章主要介绍了mysql索引失效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教<BR>
    2023-08-08
  • mysql的union和union all用法详解

    mysql的union和union all用法详解

    union 和 union all 的区别是,union 会自动压缩多个结果集合中的重复结果,而 union all 则将所有的结果全部显示出来,不管是不是重复,本文给大家介绍mysql的union和union all用法,感兴趣的朋友一起看看吧
    2023-08-08

最新评论