windows如何同时安装两个不同版本的Mysql(Mysql8.0+Mysql5.7) & 解决多实例可能发生的冲突问题 |
您所在的位置:网站首页 › cad安装2个版本 › windows如何同时安装两个不同版本的Mysql(Mysql8.0+Mysql5.7) & 解决多实例可能发生的冲突问题 |
1.问题
由于公司要求使用mysql版本为Mysql5.7,而我之前的项目均是使用Mysql8.0,为了避免卸载重新安装Mysql5.7可能导致的问题,便寻找了可以同时在Windows上安装两个不同版本Mysql的方法 2.解决参考:windows如何同时安装两个不同版本的Mysql(Mysql8.0+Mysql5.7) 2.1 进入你下载解压后的Mysql安装目录,我这里是 D:\mysql-5.7.24-winx64, 并且创建空文件夹data 和 配置文件 my.ini 2.2 配置my.ini这里可以将之前你上一个版本的Mysql的该文件复制过来,也可以重新写一个 但一定要注意!!! 由于之前版本的Mysql版本使用的是3306端口,这里我改为使用了 3307 端口 [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3307端口 port = 3307 # 设置mysql的安装目录 basedir=D:\mysql-5.7.24-winx64 # 设置mysql数据库的数据的存放目录 datadir=D:\mysql-5.7.24-winx64\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB 2.3 设置环境变量 2.4 关闭原来的mysql服务 2.5 以管理员身份打开黑窗口(CMD),切换到mysql5安装目录的bin目录下执行 2.6 使用mysqld进行初始化操作(这里的路径改为自己的)mysqld --defaults-file=D:\mysql-5.7.24-winx64\my.ini --initialize --console 注意要记录这里生成的随机初始密码!!!! 这里显示为'[Note] A temporary password is generated for root@localhost: n3fsco#ZdR7T' 2.7 注册服务(服务名可以自由选择),修改注册表mysqld --install MYSQL5 成功会显示Service successfully installed win+r,输入regedit,进入注册表页面,输入计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MYSQL5 选择其中的ImagePath项进行修改 "D:\mysql-5.7.24-winx64\bin\mysqld.exe" --defaults-file=D:\mysql-5.7.24-winx64\my.ini MySQL5 以上项根据自己的mysqld.exe和my.ini和服务名进行修改 2.8 启动Mysql5服务net start Mysql5 若是有错误可以尝试在服务中寻找Mysql5项相关配置或者重启 2.9 通过DOS连接Mysql遇到了一个小问题,没有指明端口号造成的:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) mysql -uroot -P3307 -pn3fsco#ZdR7T 这里不是默认3306端口号(之前配置中改为了3307),必须要在这指明,不能省略 2.10 设置兼容set global show_compatibility_56=on; show_compatibility_56 是 MySQL 中的一个全局系统变量,用于控制是否启用与 MySQL 5.6 版本兼容的特性。当这个变量被设置为 ON 时,MySQL 会尽可能地启用与 MySQL 5.6 版本兼容的行为,这样可以确保更容易迁移或使用那些依赖于 MySQL 5.6 版本行为的应用程序。 2.11 修改密码set password for root@localhost = password('xxxxx'); 直接设置即可 2.12 尝试使用数据库工具连接注意这里也要指明端口号为3307!!! 3. 补充 (本地计算机上的 mysql57 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。) 3.1 遇到如上问题时,我在网上找了下解决思路,最常见的是备份data文件,然后将data删除,整个数据库重新初始化参考:mysql数据库启动时报服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止 3.2 但是我们并不想如此操作,并且希望找到真正的错误原因,首先进入到data目录,找到PC.err报错日志 3.3 发现错误信息 2023-08-29T04:00:33.043848Z 1 [ERROR] [MY-012611] [InnoDB] Operating system error number 32 in a file operation. 2023-08-29T04:00:33.051735Z 1 [ERROR] [MY-012615] [InnoDB] The error means that another program is using InnoDB's files. This might be a backup or antivirus software or another instance of MySQL. Please close it to get rid of this error.翻译下就是其他进程正在使用 MySQL 的数据文件。这可能是因为你的 MySQL 服务器已经在运行,或者其他程序正在访问 MySQL 的数据文件。 应该是之前开的那个Mysql实例未完全正确关闭 3.4 首先检查另一个Mysql实例是否关闭这里确定服务已经关闭,但是问题出在哪呢? 3.5 进一步查询错误原因mysqld --defaults-file="G:\tools\MySql\mysql-8.0.32-winx64\my.ini" --standalone --console 2024-03-21T13:46:40.669485Z 1 [ERROR] [MY-012526] [InnoDB] Upgrade is not supported after a crash or shutdown with innodb_fast_shutdown = 2. This redo log was created with MySQL 5.7.24, and it appears logically non empty. Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/upgrading.html 2024-03-21T13:46:40.671576Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error. 2024-03-21T13:46:40.703531Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine 2024-03-21T13:46:40.704919Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed. 2024-03-21T13:46:40.708145Z 0 [ERROR] [MY-010119] [Server] Aborting关键问题出现:Upgrade is not supported after a crash or shutdown with innodb_fast_shutdown = 2. This redo log was created with MySQL 5.7.24, and it appears logically non empty. Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/upgrading.html 解释一下就是:MySQL 使用了 innodb_fast_shutdown = 2 设置进行了快速关闭后再次启动时,出现了不能支持升级的情况。此时,InnoDB 检测到 redo 日志(重做日志)不为空,可能是由于 MySQL 5.7.24 版本的 redo 日志无法直接用于 MySQL 8.0 版本的启动,导致了后面一系列的错误。 3.6 解决问题参考:MYSQL:崩溃或 innodb_fast_shutdown = 2 关闭后不支持升级 在Mysql的安装目录下,找到 ib_logfile0 和 ib_logfile1, 两个文件,备份删除 成功启动! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |