安装MySQL总是有各种各样的错误,我今天安装的时候把全过程及报错的解决都贴上去了,方便有同样错误的朋友参考。如果不想看到错误解决的过程只想顺畅地安装MySQL,直接拉到最下面的第12点,有完整的不报错的安装步骤~
1、从官网下载安装包mysql-8.0.15-winx64.zip。
2、下载完安装包就可以解压了
我解压的路径如下(D是我自己起的名字,实际是E盘):
注:解压完不会在其他地方多出另外的东西,因为解压是纯净版的。
3、启动MySQL
我想启动MySQL,于是我双击E:\MySQL\mysql-8.0.15-winx64\bin的mysql.exe,一闪而过。为了看清楚启动时的提示,在E:\MySQL\mysql-8.0.15-winx64\bin目录输入“cmd”,即可直接跳转到该目录下的cmd,如下:
接着输入mysql.exe运行MySQL,如下:
4、解决报错Can't connect to MySQL server on 'localhost' (10061):
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
帖子1说:打开“任务管理器”->"服务",看是否有MySQL服务,我打开了是有的,只是没有启动。我右键启动此服务,报错说找不到文件。
原因是我之前用"mysqld -install"安装过一次,但是那个文件已经被我删除了,为了验证是否如此,我打算再次运行”mysqld -install“,这样如果已经安装过就会报错,还是在步骤3打开的cmd所在文件夹bin下输入此命令“mysqld -install”(此命令需要用管理员的身份运行),显示如下:
果然如此,因为这个 E:\MySQL\MySQL_Server_Installed整个文件夹之前已经被我删除了,并且现在新的MySQL解压的路径是E:\MySQL\mysql-8.0.15-winx64。所以可以断定是历史遗留问题。
正常的思路是删除此服务再重装,可是我在刚才的服务界面里选中MySQL并打开服务,在弹出的对话框里愣是找不到删除服务的选项。这里可以百度找一下删除系统服务的shell命令,不过我先不这么做,打算百度找一下“MySQL The service already exists”的错误解决办法。
5、解决上述“The service already exists(服务已存在)”问题:
帖子2解决了我的问题,它说可以用命令"sc query mysql"(sc估计是service的意思)查询是否已安装mysql服务,用“sc delete mysql”删除mysql服务,这两个命令同样需要用管理员的身份,运行如下:
再次安装“mysqld -install”,结果如下:
MySQL服务安装成功了。
6、解决上述解决到一半的问题Can't connect to MySQL server on 'localhost' (10061):
安装成功是解决服务问题,第一个错误“ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)”还没解决,回到帖子1,里面说启动mysql服务是用命令“net start mysql”或者直接“任务管理器”->"服务"右键启动MySQL服务,这里我选择用命令,如下:
报错了,那换种方法,右键启动MySQL服务,如下:
点击后MySQL的状态变化为:"已停止"->"正在启动"->"已停止"。
好吧是一样的。
7、解决“MySQL无法启动,服务没有报告任何错误”这个问题:
帖子3说:是因为没有初始化的话没有data目录,自然无法启动成功。我看了一眼我的解压目录,里面的确是没有data这个文件夹。
所以用shell命令”mysqld --initialize“初始化一下,如下图所示,运行该命令需要一点时间。
shell命令的世界里,没有消息就是好消息,我打开该解压目录,一看,data文件夹果然出来了(其实在该命令运行的过程中,因为时间比较长,我悄咪咪地打开了解压目录,并进入了生成的data文件,看到了里面一个个文件的生成,有种欣慰的感觉:果然此帖子的博主说的对,这个命令就是初始化data文件夹用的)。
再次输入命令”net start mysql“,如下图所示:
好的,启动成功了,我露出了姨妈笑。
8、启动成功后运行”mysql.exe“,报错如下:
解决此问题:
帖子4说:改成命令mysql -u root -p运行,运行如下:
其中password因为我没有设置过所以直接按回车,就出现了这个错误,按照这种情况是说密码错误,可是密码是啥?有的帖子说刚才运行”mysqld --install“时应该为“mysqld --install --console”,这样才能让它帮我们初始化的密码显示在控制台上才能看见,然而我已经运行过了,应该到哪里找密码呢?
9、找到系统给的初始化密码的位置:
帖子5说:初始化密码就在错误日志文件里,日志文件一般是在运行“mysqld -install"后生成的data文件夹里,后缀为".err"文件,注意一下不同电脑该日志文件名不一样,我的日志文件名为:"DESKTOP-PK3AO21.err",位置如下图所示:
打开就能看到初始化密码了,是一串奇怪的符号:
因为很奇怪,所以输入密码时注意自己的输入法是中文的还是英文的,也要注意大小写。
输入之后就登陆成功了!
我弄了一个下午终于……不过不能每次都输入这么非人类的密码,所以修改一下密码吧~
10、修改密码:
还是刚才的帖子5说的,修改密码是 alter user root@localhost identified by '新密码',不过里面说密码要满足一定复杂度,我设置了'amiao'倒是没什么问题。
至此大功告成,我弄了一个下午,总算见光明了。
11、总结一下:
我这里安装的是最新版本的mysql,虽然说解压版的比较干净,但是里面没有配置文件my.ini了,所以发生很多错误时找的解决办法都要对这个文件动刀,然而巧妇难为无米之炊啊。好多都是说自己新建一个配置文件给放到bin同级的目录下,然而官方都把这文件隐藏掉了,再这样做岂不是很回退?所以不应该自己新建my.ini,而是在没有my.ini文件的基础上寻找解决办法。
另外因为是解压版的,还得自己用shell命令install一下,就各种问题。不过仔细一想,一个官方的安装包,不可能给每个用户安装都要用户自己去寻找N多帖子(像我就找了五个有效帖)才能安装成功,肯定得有一个正常的安装步骤,所以,我整理了一下上面的安装步骤,来个按顺序不报错的开心安装mysql的步骤,如下。
12、windows完整的不报错的安装mysql步骤:
1)下载压缩包并解压:
从官网下载安装包mysql-8.0.15-winx64.zip并解压。
2)查看是否有之前安装过的MySQL服务:
打开“任务管理器”->"服务"(我是win10),看是否有MySQL服务,如果有,那就是用户自己之前安装的残余物,卸载掉,卸载步骤见步骤3,如果无直接跳步骤4。
3)卸载原来的MySQL服务:
以管理员权限打开cmd,任意目录下,输入命令“sc query mysql”查询MySQL服务是否真的存在,输入命令“sc delete mysql”删除旧MySQL服务。
4)安装MySQL服务:
以管理员权限打开cmd,转到该zip的解压目录的bin目录下,输入命令“mysqld --install --console”,安装完会提示成功,并会给出登陆初始化密码,是一段奇怪的字符,如果此时不小心关掉cmd忘记此密码或者没有显示初始化密码(比如不小心只输入了“mysqld -install”),没关系,后面的步骤会说明如何查看此密码。
5)初始化MySQL环境:
这是必须初始化的,不初始化的话zip的解压目录下会没有data文件夹,没有data文件夹,直接启动mysql服务(用命令net start mysql)的话,会提示MySQL无法启动并且服务没有报告任何错误。初始化环境还是需要在该zip的解压目录的bin目录的cmd下,输入命令“mysqld --initialize”,运行需要一定时间,因为它在帮你生成data文件夹(路径与bin文件夹同级)及下面的文件。运行完如果没有提示任何,就证明初始化成功了。
6)启动MySQL服务:
还是在该zip的解压目录的bin目录的cmd下,输入命令“net start mysql”,这时应该可以启动成功了。如果不想用命令行,也可以在“任务管理器”->“服务”下找到MySQL服务,右键启动。
7)查看MySQL给的第一次连接的密码:
打开步骤5)生成的data文件夹下的后缀为“.err”文件,此文件是日志文件,不同电脑日志文件名会不一样,我的是“DESKTOP-PK3AO21.err”,打开看到“[Server] A temporary password is generated for root@localhost: <eoXZ;i-(0uf”,后面的这串“<eoXZ;i-(0uf”就是初始化密码,因为比较复杂待会键入的时候要注意大小写,以英文的输入法键入。
8)连接MySQL:
还是在该zip的解压目录的bin目录的cmd下,输入命令“mysql -u root -p”,回车,提示你输入密码,就输入步骤7)找到的那串密码。
9)改密码:
因为那串密码非人类,需要改密码,在mysql>输入命令“alter user root@localhost identified by 'amiao' ”,amiao就是你的新密码,可任意设置,不过有的帖子说这个密码需要满足一定复杂度(比如“abcD001!”),我试了“amiao”就可以,所以说看人品。
完成!
备注:2021.10.12最新测试,8.0.26版本测试通过。
另外如果遇到其他问题,直接卸载本机已有的mysql再按我这个教程第12点安装即可,我遇到一个新问题安装时没问题,启动net start mysql时说找不到这个服务并且报错Net Helpmsg 2185,原因是我电脑已有一个叫“mysql80”的service而不是mysql。但是影响了我启动mysql的服务。我将mysql80这个卸载,删掉我刚安装的8.0.26 create好的data目录。再安装,顺利成功。