前言
刚看到标题你可能会奇怪,我为什么要把时间也写上,这不是多此一举吗?只能说这是我用了将近四个小时重装了3次MySQL等来的宝贵教训,或许你现在觉得多余,但如果你和我一样查阅了无数资料,见识各种报错(1045,1290,2003… )你们就会知道技术日新月异,软件也会更新换代,在当时可能适合的方法到今天可能就不完全适应了。本人就是基本把网上所有方法都有试过,可惜的是这些方法各式各样但又千篇一律,并且大部分都过时了。所以还是要提醒大家不知要注意软件版本,解决方法发布的时间也要格外关心,免得在刚开始就挫了锐气。
下面是是我解决的方法:
由于不知道大家到了哪一步了,所以我就把我安装完mysql后的步骤写出来
(一)
1.进入MySQL的安装目录,我的是:Z:\MySQL\mysql-8.0.21-winx64
2.进入后创建一个文件my.ini,内容如下:
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
basedir=Z:\MySQL\mysql-8.0.21-winx64
#解压目录
datadir=Z:\MySQL\mysql-8.0.21-winx64\data
#解压目录下data目录
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[WinMySQLAdmin]
Z:\MySQL\mysql-8.0.21-winx64\bin\mysqld.exe
记得自己改一下前面的安装目录
3.管理员身份打开运行输入cmd(右键你的开始菜单按钮上面有)
4.确定一下你是否打开mysql服务,输入net start mysql,发现
5.先查看日志mysqld --console,若发现
则是因为没有data目录的原因。如果是3306端口被占通过netstat -ano 查看3306被那个进程占用,记下进程号pid。taskkill /pid xxxx(进程号) -t -f 杀死就行。
6.没有data目录通过输入mysqld --consolel --initialize来初始化创建data目录
7.此时你会发现安装目录多了个data目录
8.此时再启动mysql,net start mysql
(二)(重点)首次免密登录和修改密码
9.net stop mysql停止mysql先。
10. mysqld --console --skip-grant-tables --shared-memory ,设置免验证登录
11.先不动这个窗口,管理员身份打开另一个命令窗口。
12.输入mysql -u root -p ,输入密码的地方直接回车
13.登录成功后,输入alter user ‘root’@‘localhost’ identified by ‘你的新密码’;(分号别漏)更给密码
发现出现报错
14.输入flush privileges;刷新权限,后再来alter user ‘root’@‘localhost’ identified by ‘你的新密码’;
15.这样就完成了密码设置,接下来就是退出,然后打开mysql服务,用密码登陆了。
能顺利到这一步说明你比我幸运多了,当然也有可能又遇到了别的其他错误,只想说别害怕,总有人和你一样遇到这样的问题,他们能解决你也一样行,正所谓久病成医嘛,hh。