从网上总结的经验,然后根据自己所遇到的问题合并记录一下,方便日后再次需要用到
MySql服务多版本同时运行
步骤
1、如果你电脑上已经有一个mysql版本,例如mysql-5.7.39-winx64
,它占据了3306端口。此时如果你想下仔另一版本,附上下载地址,想下哪个版本版本自己下,下载好后,咱们把他们都解压到某同一个目录下,例如:
D:\MySql\mysql-5.7.39-winx64
D:\Mysql\mysql-8.0.31-winx64
2、解压后的mysql-8.0.31-winx64下面没有my.ini
文件和data文件夹,这个需要我们自己创建,如下:
执行如下命令创建data文件夹,这个最好用命令创建哈
mysqld --initialize
执行完上述命令后,会生成data文件夹,里面有诸多文件,我们目前只需要在乎里面一个.err
文件,里面存放着mysql的初始密码,例如:
之后我们需要靠这个密码进行这个版本数据库的第一次登录,所以需要提前将他复制哈。
手动创建一个my.ini
文件,在里面输入如下内容:
[mysqld]
# 设置3307端口(原先的mysql5已经占用3306)
port=3307
# 设置mysql的安装目录(你自己的目录)
basedir=D:\MySql\mysql-8.0.31-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\MySql\mysql-8.0.31-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
3、接下来,我们打开电脑服务,看下是不是有mysql服务启动着,如果有就关了
4、管理员方式打开命令行,切换到刚才下载的mysql版本的bin目录下,执行如下命令:
mysqld install mysql8
第三个单词mysql8可以自己命名,到时启动这个版本的mysql会用到,查看电脑服务的时候也会用到
5、然后我们进行环境变量的配置,复制bin目录的地址,新增到系统变量path中,这一步是为了到时能够直接在命令行中启动mysql服务,而不需要在次切换到bin目录下进行启动。
6、接下来我们打开注册表,路径为:计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mysql8
,点击ImagePath进行修改,内容为D:\MySql\mysql-8.0.31-winx64\bin\mysqld MySQL
7、到这一步,安装的两个版本的mysql此时可以同时启动了,不过我们还得给刚才安装的mysql设置重置密码哈
输入mysql -u root -p -P3307
,然后回车,这样可以避免出现[Warning] Using a password on the command line interface can be insecure.
这样的警告,接下来我们再输入之前从.err
文件中复制的密码,回车,即可登录成功
注意,一定要记得指定端口例如
-P3307
,不然到时启动的就是默认情况下的mysql版本
8、修改新安装版本的mysql密码
依次执行如下命令
# 修改加密规则
ALTER USER'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
# 更新一下用户的密码
ALTER USER'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
# 刷新权限
FLUSH PRIVILEGES;
# 重置密码
alter user'root'@'localhost' identified by '你要设置的密码';
然后我们就完成了哈
我们补充几点哈:
1、假如你电脑原本默认的mysql版本是mysql5.7.21的,启动时就是net start mysql
命令即可启动了,关闭服务就是net stop mysql
命令即可;如果你要启动刚才安装的mysql8.0.31,那么启动时就要输入当前版本的名字,像这样net start mysql8
,mysql8之前在安装的时候就命名好了
2、登录mysql时,电脑原本版本的可以mysql -u用户名 -p密码
直接登录,而mysql8.031则需要再输入端口号才行mysql -u用户名 -P所用端口号 -p密码