window10安装不同版本的mysql(5.7和8.0.25)
原本已安装mysql5.7,现在想再安装一个8.0,原本以为只是改一下端口而已,但是在这个过程出现了很多问题,然后我尝试了很多种过程,在这里就讲一下自己的最后一遍,可能和网上别人的步骤有点出入。
先把之前的5.7的服务关掉,在任务管理器的服务一栏可以找到
1、下载mysql8.0的解压版
1.1、链接:MySQL :: Download MySQL Community Server
1.2、解压
1.3、文件内容准备(开始没有data和my.ini文件)。
1.3.1、创建并编辑my.ini文件
这里为mysql8设置3307端口,因为5.7版本的占用了3306端口。
可以进入cmd(不需要管理员权限):输入 Netstat -ano|findstr 3307 查看3307是否被占用,没有则什么都不会返回,我们就可以使用这个端口
[mysqld] # 这里设置3307端口 port=3307 # 设置mysql的安装目录 basedir=D:\MySQL\mysql-8.0.25-winx64 # 设置mysql数据库的数据的存放目录 datadir=D:\MySQL\mysql-8.0.25-winx64\data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 # 服务端使用的字符集默认为UTF8 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [client] # 设置mysql客户端连接服务端时默认使用的端口 default-character-set=utf8
1.3.2、增加环境变量
右键电脑->属性->高级系统设置->环境变量->找到path->添加路径(D:\MySQL\mysql-8.0.25-winx64\bin),路径看自己的安装情况,主要就是方便后面在cmd中的切换,也可以不用设置
1.3.3、多安装一个mysql是很玄学的事情,就比如从这里开始。网上大多数情况都是不能手动添加data文件的,不然会报一个错误,所以我这里从一开始就没有自己创建过,都是等运行命令mysqld --initialize --console才让它自己生成data文件。然后这里我就说一下自己最后一遍的做法(成功案例),因为我一直在重复这个步骤,一直报错,说什么无法连接到localhost,我也不知道具体哪一步我错了,最后一次我成功了,我重头开始,换成开始就创建了一个空的data文件夹
点击左下角的window图标,输入cmd,选择以管理员身份运行(不然权限不够)
输入路径可以快速切换到bin目录
输入命令mysqld --initialize --console
此时在之前创建的空data目录多了很多文件
然后会生成一个首次登陆的密码串(记得先保留下来):
不包含最前面的空格,有时候最后一个字符可能是分号“ ; ”,它也是密码的一部分,要一起输进去
如果看不清是英文字母“ l ”还是阿拉伯数字“ 1 ”,两者在cmd界面长得太像了,介意直接复制粘贴,或者复制到微信输入框,可以辨别清楚
创建服务:mysqld --install mysql8(mysql8主要就是为了和之前5.7版本的服务名区分开来),然后开始服务:net start mysql8
在这里可能出现服务无法启动的情况:
首先win+r,输入 regedit 打开注册表,寻找路径:计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mysql8
修改imagePath的数据部分,格式和5.7版本的一样,我的5.7版本则是在上面的MySQL,可以打开查考一下
开启服务成功之后就要去登录数据库了:mysql -uroot -P3307 -pC6.d5B;pt-v1
mysql -uroot -P3307 -p(前面生成的很奇怪的初始密码)
最后这一波操作就很灵性了,也是玄学之一。
如图所示,我被这个错误折磨了一下午ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3307' (10061),网上的那些也说得奇奇怪怪,感觉和没说一样,然后我就试着停止服务,开始服务之后,再登录一次,居然成功了!!!芜湖起飞!!!可以看到,我什么都没改,却又成功了,停止和开启mysql8服务这个操作我试了半天了,试了无数次了,却在这个时候可以了。然后它为什么可以了,它和前面的操作的差别就在于上面所提到的的,我自己先创了一个空的data目录,,,一个一直被喷的做法却救了我,想无。
既然进来mysql8数据库了,就修改一下密码(最后的记得分号):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxx';
希望对你们有帮助,在这里我就建议就多试试,多试一下不同的安装过程,不要那么死板,一堆人说不可以这么做你就不敢或者不想去自己试一下,(其实要不是自己走投无路了,我也不会去试一试哈哈哈),反正data文件夹随便删,它不影响整体,还可以一直被创建。
两个服务同时开启互不影响
登陆的时候只要提供不同的端口即可
mysql -uroot -P3307 -p
mysql -uroot -P3306 -p