【MySQL】【已解决】Windows安装MySQL8.0时的报错解决方案

一、引言

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

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

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

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

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

PS:还有一些小的经验,在写代码或者是安装软件、配置环境的时候,经常会出现很多报错,你要上网查资料查教程,但是最后却发现搞了一天甚至更长都解决不了,这是很正常的事情,千万不要觉得很烦或者觉得解决不了,只要耐心去弄,仔细看看报错,也许问题就会迎刃而解。在最开始接触Ubuntu的时候,从安装系统到各种下载安装软件各种报错、各种问题,那时候真是折磨得很,但是在处理报错的同时,水平也一定在慢慢提升,现在已经慢慢会看报错寻找问题解决问题了。

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

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

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

数据库初始化产生错误

日志如下:

Log日志:
C:Program FilesMySQLMySQL Server 8.0inmysqld.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:ProgramDataMySQLMySQL Server 8.0Data is unusable. You can remove all files that the server added to it.
Aborting
C:Program FilesMySQLMySQL Server 8.0inmysqld.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

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

错误5:启动服务器时卡住(这个当时忘记截图~~)

三、解决方案

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

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

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

  • 点开Log,里面提示的就是标题写的,无法识别的参数"mysqlx_port=0.0",大写的疑惑啊,官方的安装程序都不能跑?

  • 这个时候不管如何改,都没用了,用官方的安装程序就到这,接下来是手动操作模式

  • 第一步:找到my.ini文件,如果前面的安装程序都是默认选择的话,那my.ini的位置应该是C:ProgramDataMySQLMySQL Server 5.7my.ini,找到my.ini文件后,搜索一下报错的参数mysqlx_port=0.0 ,其实就在最后一行,注释掉(这时候可能以为重新用官方安装程序能够继续下去,其实不能,每次它都会重新生成my.ini,然后mysqlx_port=0.0又出现了!)因为此处的文件需要更高的权限才可以修改,所以这时候需要打开my.ini文件,到最后一行,将0.0改为0,注释掉,先另存到别的地方,然后再复制到原本的my.ini文件的位置,系统会提示替换这个同名文件夹,直接点击继续(需要管理员权限)即可更改。

  • 第二步:如果前面的安装程序都是默认选择的话,那mysql的data文件应该在C:ProgramDataMySQLMySQL Server 5.7Data(注意:此处的ProgramData是C盘中的一个隐藏文件夹,需要在文件夹上方导航栏【查看】->【显示】->勾选【隐藏的项目】就可以找到了),打开这个目录,把里面的文件删光

  • 第三步:找到mysqld.exe文件,可以用上一步推荐的everything,如果前面的安装程序都是默认选择的话,位置应该在C:Program FilesMySQLMySQL Server 5.7inmysqld.exe,找到这个文件后,在这个目录下打开cmd,最方便的方式是直接地址栏输入cmd,回车

  • 打开cmd窗口后,构建这样一个命令:mysqld --defaults-file="C:ProgramDataMySQLMySQL Server 5.7my.ini" --console --initialize-insecure,然后回车

    mysqld --defaults-file="C:ProgramDataMySQLMySQL Server 8.0my.ini" --console --initialize-insecure
    // 根据你安装的实际版本将上面的8.0更改为你的版本号
  • **(可选)**有可能遇到这样的一个错误,是编码问题,打开上面找到的my.ini,另存为,选编码格式为ANSI,覆盖掉之前的那份my.ini,然后重新运行mysqld --defaults-file="C:ProgramDataMySQLMySQL Server 8.0my.ini" --console --initialize-insecure

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

    mysqld --defaults-file="C:ProgramDataMySQLMySQL Server 8.0my.ini" --console?
    // 这里的版本号也要更改
  • 然后在C:Program FilesMySQLMySQL Server 5.7in这个目录下再新打开一个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!

参考文章:安装MySQL?5.7出现报错:unknown?variable?'mysqlx_port=0.0'的解决方法_Mysql_脚本之家 (jb51.net)CSDN博客(因为安装的时候真的看了很多文章嘞)

相关推荐
久绊A7 分钟前
Python 基本语法的详细解释
开发语言·windows·python
夜泉_ly7 分钟前
MySQL -安装与初识
数据库·mysql
qq_529835351 小时前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
月光水岸New3 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6754 小时前
数据库基础1
数据库
我爱松子鱼4 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo4 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser5 小时前
【SQL】多表查询案例
数据库·sql
Galeoto5 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)5 小时前
MySQL主从架构
服务器·数据库·mysql