荒废学习一段时间了,最近决心静心学习,不料开始了几天就发现需要用到的MySQL密码忘记了,不得已的情况下选择重装(原来的版本是MySQL5.7,5.5及其以下的版本比较容易重置密码),重装就重装,5.7的时候我也是因为5.5忘了密码重装过,基本流程还是记得的,不虚,那曾想技术更新真的快,现在都到8.0了,重装过程中就出现了一堆问题,其中“服务无法启动,服务没有报告任何错误”这个问题一度让我崩溃,疯了,吃过饭再静静地搞了下发现可以了(上网搜资料,然后尝试,再思考总结),果然人铁饭钢。
从MySQL官网上下载程序包(免安装):https://dev.mysql.com/downloads/mysql/ (选择mysql-8.0.13-winx64.zip),然后把程序包解压到所要安装的目录下
在环境变量的Path中加入MySQL根目录中的bin目录的路径,咋们先把环境变量给配置好,以后都要用的呢;
测试是否成功:Win+r,出入cmd,回车,在命令行中输入mysql -V (注意是大写的V),这表示查看MySQL的版本号,能查到就表示环境变量配置成功了
配置好my.ini文件放到mysql的根目录下,my.ini内容(供参考)如下:
[Client]
port = 3306
[mysqld]
port = 3306
server_id =10
basedir=D:\Program_Files\mysql-8.0.13-winx64
datadir=D:\Program_Files\mysql-8.0.13-winx64/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
忘记密码时使用
skip-grant-tables
设置协议认证方式
default_authentication_plugin=mysql_native_password
[mysql]
default-character-set=utf8
命令行(管理员)输入 cd D:\Program_Files\mysql-8.0.13-winx64\bin
表示定位到文件执行的目录下
输入 mysqld –initialize –user=mysql –console
表示初始化mysql服务(有看到其他同志们用的是mysqld –initialize –insecure或者mysqld –initialize,我试着不行,后面初始化ok了之后没找到初始密码,就很尴尬),能在命令行中显示临时的初始密码,后面进入mysql会用到,所以这个要保存好;
执行结果中的这一句就包含了临时密码“A temporary password is generated for root@localhost: Jedtf.vG4Cp:”在我这里临时初始密码是Jedtf.vG4Cp:这个东西
输入 mysqld –install
表示安装mysql服务,成功则会提示“Serve successfully installed.”;
若是你不小心目录弄错了,要装到其他目录去,你会发现你再装的时候就有一个问题,提示“ervice already exist!”,这个时候就纳闷了,但还是有办法的。输入 mysqld -remove MySQL 就能解决了
输入 net start mysql
表示启动mysql服务,同样也可以通过在系统的服务(图形界面操作,Win+r,输入service.msc,找到MySQL)中开启;
此操作执行成功后就会提示“服务MySQL已经启动成功”;
若不成功可能会提示“服务无法启动,服务没有报告任何错误”并且按照它的提示去做也发现不了问题,因为还是会提示“服务报告没有任何错误”,所以说我搞到这就差点崩溃了,这是什么操作嘛(黑人脸问号)
经过上述步骤,若都能成功的话,那你离成功就只差一步了,就差进入mysql验证是否配置成功了呀
输入mysql -uroot -p,回车后输入密码(这个密码哪里来的呢,我们没设置密码啊,按照以前5.5,5.7的版本,我们默认的就是5.7,那你想着肯定就是这些了啊,结果密码输了几次发现不是root,根不是什么mysql,那你又得崩溃了,看看第4点,之前的步骤其实是有铺垫的了),OK能进去了,我感动流涕啊耗了一个下午还有晚上的时间
最后修改密码 ALTER USER root@localhost IDENTIFIED BY ‘123456’;
把密码修改为123456,当然这个语句是要在进入了mysql之后执行的,注意看命令行的首部的标识符,是mysql>;
然后就可以了,退出之后重新测试一下新密码,大功告成
总结
①其实这个不复杂的,尝试的时候有自己的思路就OK了,试多几次然后对比总结,学到的东西会多很多呢;
②我觉得问题主要有两个,第一是这些命令的执行顺序,要按着顺序来,你不懂没关系吧,每种顺序试一下,况且网上又有资料,你知道他们的大概用处,猜一下正常顺序不难的,因为核心的命令就只有两条:install和initialize;
③第二个是my.ini的配置内容,千万不要搞错了,直接复制过来,然后再用英语常识判断一下别人的代码有没有拼写错误;
my.ini文件中必要的配置:
default-character-set=utf8
MySQL的根目录
basedir=D:\mysql5.1
datadir=D:\mysql5.1\data
port=3306
④然后关于注册表这些东西,网上有些大神有教,但我建议大家别乱来,毕竟人家是知道自己的问题所在然后又懂注册表各种的,他们一些列的操作都知道自己在干什么,你胡来随便删个注册表,搞对了是挺好的,万一错了呢,然后又忘了备份,那个时候就惨咯
下面的是我的一个配置过程,希望你也能感受到图片末尾看见Welcome to MySQL monitor.的喜悦