本地同时安装并运行两个版本MYSQL
背景介绍
本地已经安装好一个MySQL版本号 5.7.27
,端口号 3306
现想安装个较新版本的以供后期学习
一、下载所需版本mysql
打开 MYSQL官网 ,划到最下方 DOWNLOADS栏,选择 MYSQL Community Server
点击 Archives
选择其他版本,下载 所需版本
此处可根据需要选择不同版本 ,我选择 的是8.0.18版本
下载后解压到一个没有中文,空格,特殊符号的目录中 ,此处我放在 D:\Environment\mysql-8.0.18
二、配置环境变量
新建一个系统变量,地址指向 mysql 存放目录
将新建的这个系统变量添加到 Path
中 可以看到 path 中有两个mysql 的系统变量
查看本地 path 变量可才命令提示符中输入 echo %PATH%
查看
若系统变量错误,则不会显示具体的路径,而是显示错误的引用路径 正确应为 %MYSQL8.0.18_HOME%\bin;
此处少了个百分号结束符
三、安装并配置 mysql 服务
新建 my.ini
文件
注意端口号设置为未被占用的端口,basedir
为mysql 存放目录,datadir
为 basedir\data
[mysqld]
# 设置 3307 端口
port=3307
# 设置 mysql 的安装目录
basedir=D:\Environment\mysql-8.0.18
# 设置 mysql 数据库的数据的存放目录
datadir=D:\Environment\mysql-8.0.18\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为 utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置 mysql 客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置 mysql 客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8mb4
目录结构如图所示
查看某端口是否已开启或被占用
首先要确保 telnet 服务已启用
启动该功能可到 控制面板 => 程序 => 启用或关闭Windows功能 进行启用
进入命令提示符 ,使用命令 telnet ip port
即可查看
如果连接失败则表明改ip 下的该端口没有开发,即未被占用
查看一下本地 3306端口是否开启
成功响应如下信息 则表明该端口正常开启,可以看到这是我本地 5.7.27 版本的mysql 服务占用了3306 端口
以管理员身份打开命令提示符(注册服务等操作需管理员权限)
切换到当前版本 mysql 的bin 目录
执行命令 mysqld --initialize --console
, 初始化mysql服务,服务初始化完毕后会随机生成密码,该密码下面会用到
另外会在mysql 目录生成data文件夹及相关文件
运气不好的小伙伴可能会遇到如下错误
因为新版本的 可能将旧版本的 share\english\errmsg.sys
文件覆盖并报错
解决方法也很简单,将旧版本的这个文件覆盖新版本的即可
继续执行 mysqld --install 服务名
安装mysql 服务,显示 Service successfully installed即表示服务安装成功
可以检查一下服务安装是否正确,Win+R 输入 regedit
打开注册表
找到新注册的服务位置 计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MYSQL8.0.18
双击 imagePath
即可查看该服务具体配置内容,检查服务路径是否正确
启动mysql 服务
使用生成的密码登录mysql ,若不在mysql的bin目录下登录,应指明端口号,因为mysql 端口号默认为 3306
使用命令alter user 'root'@'localhost' identified with mysql_native_password by '要修改的密码';
修改密码
执行 flush privileges;
刷新权限
至此,所有步骤已完成,完结撒花