Windows同时兼容MySQL5和MySQL8
【一】下载好两个版本的数据库MySQL
官网下载:(https://dev.mysql.com/downloads/mysql/)
-
点击Download->Community。
-
查找需要的MySQL版本。
我下载的都是 64 位系统的。
进入是下载MySQL8
点击previous获取以前MySQL版本,下载MySQL8
【二】下载下来的是压缩包,解压缩就行,放到自己想放的位置。
【三】配置环境
1. 遇到的问题:
- MySQL8目录下没有生成data文件夹,而生成到MYSQL5目录下
- 启动服务失败,右键服务属性,可执行文件的路径竟然是MySQL5目录下的
- 日志文件在MySQL5目录下,日志内容会提示读取了MySQL5的配置文件my.ini
2. 产生的原因:
由于先前已安装了MySQL5,MySQL环境变量是配置的MySQL5的,所以在MySQL8 bin目录下执行的所有命令都是在MySQL5下执行的
- 运行初始化命令:mysqld --initialize生成的data文件及日志会在MySQL5目录下,
3. 解决办法:
由于我们的环境变量现在还是MySQL5,为了安装MySQL8时不使用MySQL5的环境变量,我们将原有的MySQL5的环境变量改成MySQL8的环境变量。然后再进行步骤安装。
最后再把MySQL5最后再把MySQL5环境变量添加上
【四】安装MySQL8
【1】创建必要文件 my.ini
[mysqld]
#设置3307端口
port=3307
#设置mysql的安装目录
basedir="D:/mysql/mysql-8.0.36-winx64"
#设置mysql数据库的数据的存放目录,就是前面手动创建的data目录
datadir="D:/mysql/mysql-8.0.36-winx64/data"
#允许最大连接数
explicit_defaults_for_timestamp=true
max_connections=200
#允许连接失败的次数。
max_connect_errors=10
#服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证, mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
user="root"
password="123456"
#设置mysql网络通信的默认字符集
default-character-set=utf8mb4
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3307
#设置mysql客户端的默认字符集
default-character-set=utf8mb4
【2】生成 data 文件夹(如果以前有就删除它)
- 以管理员身份打开命令提示符,切换到MySQL8的 bin 路径下。
输入命令:mysqld --initialize
等一段时间,它会重新生成一个 data 文件,找到其中后缀为 .err 的文件
【3】安装MySQL8服务
mysqld --install MYSQL8
【4】开启MySQL8服务
net start MYSQL8
【5】登录MySQL8修改密码
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
【6】刷新权限
flush privileges;