win10 安装配置双版本mysql (mysql5.7 mysql8.0)
安装
-
前期准备
下载
mysql5.7 需要 vc2013
mysql8.0 需要 vc2015
其他版本的参见该版本的文档
-
目录结构:
-
添加环境变量 (部署多版本mysql就别添加环境变量)
You should not add the MySQL
bin
directory to your WindowsPATH
if you are running multiple MySQL servers on the same machine.非多版本的话吧
bin
目录添加环境变量PATH
中,即可从任何目录下通过命令行启动mysql -
mysql程序文件夹下新建
my.ini
5.7 8.0 不用手动建data文件夹
8.0 有
skip-grant-tables
的话会启动不成功
# mysql 5.7
[mysqld]
basedir=D:\\Environment\\mysql\\mysql-5.7.33\\
datadir=D:\\Environment\\mysql\\mysql-5.7.33\\data\\
port=3316
skip-grant-tables
mysql 8.0 的
my.ini
# mysql 8.0
[mysqld]
basedir=D:\\Environment\\mysql\\mysql-8.0.25\\
datadir=D:\\Environment\\mysql\\mysql-8.0.25\\data\\
port=3317
-
安装mysql服务 (mysqld),并初始化数据库
安装mysql和启动服务等命令都在 管理员模式cmd 下运行
安装参数为
--install-manual
时开机不会自启mysql服务,将该参数替换为--install
会开机自启mysql服务mysql 5.7
D:\Environment\mysql\mysql-5.7.33\bin>mysqld --install-manual mysql57
D:\Environment\mysql\mysql-5.7.33\bin>mysqld --initialize-insecure --user=mysql
mysql 8.0
D:\Environment\mysql\mysql-8.0.25\bin>mysqld --install-manual mysql80
D:\Environment\mysql\mysql-8.0.25\bin>mysqld --initialize-insecure --user=mysql
mysqld --remove mysql57 # 卸载服务
-
启动mysql服务
5.7版本直接启动就行
# 启动mysql服务
net start mysql57
# 停止mysql服务
net stop mysql57
8.0版本可能报错
解决方法去
-
登录数据库
D:\Environment\mysql\mysql-5.7.33\bin>mysql -uroot -p -P3316
# 5.7的my.ini设置了跳过密码,8.0的默认密码为空,直接回车就行
-
修改密码
# 5.7 修改密码
update mysql.user set authentication_string=password("123456") where user='root' and Host='localhost';
# 8.0 修改密码
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
# 刷新权限
flush privileges;
5.7 的一个 warning 正常
8.0 的没提示
-
mysql 5.7版本还要将
my.ini
中的skip-grant-tables
再注释掉# skip-grant-tables
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通