MySql服务多版本之间的切换
从网上总结的经验,然后根据自己所遇到的问题合并记录一下,方便日后再次需要用到
MySql服务多版本同时运行
步骤
1、如果你电脑上已经有一个mysql版本,例如mysql-5.7.39-winx64,它占据了3306端口。此时如果你想下仔另一版本,附上下载,想下哪个版本版本自己下,下载好后,咱们把他们都解压到某同一个目录下,例如: D:MySqlmysql-5.7.39-winx64
D:Mysqlmysql-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:MySqlmysql-8.0.31-winx64 # 设置mysql数据库的数据的存放目录 datadir=D:MySqlmysql-8.0.31-winx64data # 允许最大连接数 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_MACHINESYSTEMCurrentControlSetServicesmysql8,点击ImagePath进行修改,内容为D:MySqlmysql-8.0.31-winx64inmysqld 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 USERroot@localhost IDENTIFIED BY root PASSWORD EXPIRE NEVER; # 更新一下用户的密码 ALTER USERroot@localhost IDENTIFIED WITH mysql_native_password BY root; # 刷新权限 FLUSH PRIVILEGES; # 重置密码 alter userroot@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密码