本地已经安装了mysql5.7版本,想测试mysql8版本的用法,想在一台电脑同时配置不同版本的mysql在不同端口号,看起来简单,实现起来其实挺多坑的,总结下实战经验和大家分享下
1、解压缩,设置my.ini从原来版本拷贝过来即可,改端口号以及dir
[mysqld]
port=3307
basedir=F:\mysql8\mysql-8.0.31-winx64
datadir=F:\mysql8\mysql-8.0.31-winx64\data
max_connections=200
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
[mysql]
default-character-set=utf8
2、初始化数据库,生成data目录以及密码
mysqld --defaults-file=F:\mysql8\mysql-8.0.31-winx64\my.ini --initialize --console
3、安装MySQL8服务
mysqld install MySQL8 --defaults-file=F:\mysql8\mysql-8.0.31-winx64\my.ini
看到Service successfully installed.说明已经成功,这时候我们可以看到服务多了一个MySQL8
4、修改注册表ImagePath值
win+r快捷键,然后输入regedit,会发现多了一个MySQL8,修改ImagePath的值为
F:\mysql8\mysql-8.0.31-winx64\bin\mysqld.exe --defaults-file=F:\mysql8\mysql-8.0.31-winx64\my.ini MySQL8
1、启动服务
net start mysql8
PS F:\mysql8\mysql-8.0.31-winx64\bin> net start mysql8
MySQL8 服务正在启动 ..
MySQL8 服务已经启动成功。
2、验证
mysql -P 3307 -u root -p,回车输入密码,可以看到我们已经登录上我们的mysql8版本
mysql -P 3306 -u root -p,回车输入密码,可以看到我们已经登录上我们的mysql5.7版本
解决:
- 保证两个版本的mysql在不同目录
- 安装mysql8服务的时候,指定读取的my.ini(mysqld install MySQL8 --defaults-file=F:\mysql8\mysql-8.0.31-winx64\my.ini)
- data目录不能直接从原来copy过来,需要修改,待研究
2、ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
执行命令,修改密码即可
alter user user() identified by “forlan”;
mysql5.7,端口3306 mysql8,端口3307
原因:注册表中的MySQL的ImagePath值设置错误
解决:修改后记得重新启动服务
sc delete mysql8