目录
- 1. 背景
- 2. 解决步骤
1. 背景
- 吐槽1,没被收购之前可以随便下载,现在下载要注册登录
- 吐槽2,5.7安装到初始化数据库的时候就会报错,而8.x的可以一镜到底,一开始以为是国区的特色问题,google了一圈,各个国家的人都遇到过,一视同仁了属于是
- 吐槽3,这个问题居然搜了一圈,没有特别明确的解决方案,所以就有了这个文章了
2. 解决步骤
- 官网下载5.7版本的,这是官网地址,直接双击安装,一路默认选项不用改,中间要填一下root的密码,一直到报错,如下图:
- 点开Log,里面提示的就是标题写的,无法识别的参数“mysqlx_port=0.0”,大写的疑惑啊,官方的安装程序都不能跑?
- 这个时候不管如何改,都没用了,用官方的安装程序就到这,接下来是手动操作模式
- 第一步:找到my.ini文件,推荐用everything,下载地址,如果前面的安装程序都是默认选择的话,那my.ini的位置应该是
C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
,找到my.ini文件后,搜索一下报错的参数mysqlx_port=0.0,其实就在最后一行,注释掉(这时候可能以为重新用官方安装程序能够继续下去,其实不能,每次它都会重新生成my.ini,然后mysqlx_port=0.0又出现了!) - 第二步:如果前面的安装程序都是默认选择的话,那mysql的data文件应该在
C:\ProgramData\MySQL\MySQL Server 5.7\Data
,打开这个目录,把里面的文件删光 - 第三步:找到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
,然后回车 - (可选)有可能遇到这样的一个错误,是编码问题,打开上面找到的my.ini,另存为,选编码格式为ANSI,覆盖掉之前的那份my.ini,然后重新运行
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --console --initialize-insecure
- 上面那一步没有报错的运行到最后,代表离成功不远了,接下来构建这样一个命令
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --console
,意思是在cmd里直接运行MySQL - 然后在
C:\Program Files\MySQL\MySQL Server 5.7\bin\
这个目录下再新打开一个cmd窗口,输入命令mysql -u root
,直接进入MySQL了,是的,不用密码 - 接下来,给root用户加个密码,在MySQL内部,输入命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
(分号必须要!!!这里的123456就是新密码,可随意),回车 - 刷新权限命令:
FLUSH PRIVILEGES;
(分号必须要!!!),回车 - 退出MySQL命令:
EXIT;
,回城 - 接下来验证一下密码生效了没,上一步退出来的cmd里输入:
mysql -u root -p
,再输入密码123456,ok,如愿进入MySQL了,这时候其实MySQL已经可以在电脑里运行了,但是是cmd运行的方式,每次都要手动输入,太麻烦了,做成系统服务,开机自动启动 - 先把上面手动运行的MySQL关掉,然后打开任务管理器,如果任务管理器之前打开了,就关了重新打开,切到服务页,找MySQL字眼的服务,右键,开始,如果能够正常启动,就表示服务版的MySQL装好了,以后开机自动启动。
- 目前观察到win11家庭版的系统,不能用上面的方式启动MySQL服务,还找不到原因,贴一个bat命令,可以手动点击开启MySQL,新建一个txt文件,把后缀改成bat,然后把下面的代码复制进去,保存退出,尝试双击打开,如果cmd窗口不会自动关闭,保持运行,说明MySQL运行起来了
@echo off
echo Starting MySQL Server...
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --console
echo.
echo MySQL Server started. Press any key to exit...
pause >nul
over,enjoy!