mysql - 在新的 MySQL 安装上使用以前的 MySQL 数据文件夹
问题描述
如果我能做一个正确的SQL dump/backup
,我会做的,但OS
放弃了,只能登录SafeMode
,我无法启动MySQL server
. 因此,我只能手动备份文件目录。
- 我有一个 C:\ProgramData\MySQL\MySQL Server 8.0 的保存文件副本
- 我有一个 C:\Program Files\MySQL\MySQL Server 8.0 的保存文件副本
我现在正在新安装的服务器上运行Windows
并尝试启动这台旧服务器几分钟,这样我就可以登录Workbench
并制作一个正确的SQL database dump
,稍后我将import
在新MySQL
安装上进行安装。
因此,将上述文件移动到各自的位置 -Program Files
和ProgramData
.
打开PowerShell
(具有管理员权限)并执行:
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0" --console
我在屏幕上看到了几百行,其中包含以下内容:
2020-04-10T05:28:56.725818Z 0 [ERROR] [MY-011972] [InnoDB] Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDB log files. Please refer to http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html for information about forcing recovery.
2020-04-10T05:28:56.734460Z 0 [ERROR] [MY-011971] [InnoDB] Tablespace 'innodb_undo_001' Page [page id: space=4294967279, page number=5] log sequence number 1339677380 is in the future! Current system log sequence number 19081380.
其次是:
2020-04-10T05:28:56.740834Z 0 [ERROR] [MY-011972] [InnoDB] Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDB log files. Please refer to http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html for information about forcing recovery.
2020-04-10T05:28:56.757259Z 0 [System] [MY-010229] [Server] Starting crash recovery...
2020-04-10T05:28:56.769215Z 0 [System] [MY-010232] [Server] Crash recovery finished.
2020-04-10T05:28:57.695386Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-04-10T05:28:57.765911Z 0 [System] [MY-010931] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: ready for connections. Version: '8.0.13' socket: '' port: 3306 MySQL Community Server - GPL.
2020-04-10T05:28:57.926850Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060
太好了,至少它正在运行。
我现在可以connect
但不行databases
。
- 我能做什么/我应该如何继续成功地暂时恢复这些数据库?
更新:
从数据目录中删除了 innodb_undo_001 和 innodb_undo_002 文件并重新启动。
得到这个:
PS C:\Program Files\MySQL\MySQL Server 8.0\bin> .\mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --console 2020-04-10T05:55:29.555478Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2020-04-10T05:55:29.558313Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.13) starting as process 3028
2020-04-10T05:55:31.394427Z 1 [Warning] [MY-012351] [InnoDB] Tablespace 1, name 'sys/sys_config', file '.\sys\sys_config.ibd' is missing!
2020-04-10T05:55:32.808645Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-04-10T05:55:32.856154Z 0 [System] [MY-010931] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: ready for connections. Version: '8.0.13' socket: '' port: 3306 MySQL Community Server - GPL.
2020-04-10T05:55:32.898055Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060
正在运行但不存在数据库。
尝试了 Innodb-force-recovery 方法 - 没有任何反应。和之前一样。
解决方案
好的,假设所有文件都没有损坏,您可以尝试以下操作:
- 创建一个新文件夹(如果可能,在不同的驱动器中)。将其命名为
test
或其他名称。然后将目录中的所有文件复制C:\Program Files\MySQL\MySQL Server 8.0
到新文件夹中。
*注意:如果文件夹中没有 my.ini 文件,请将其从C:\ProgramData\MySQL\MySQL Server 8.0
目录复制到文件夹中。
*使用 cmd 手动安装服务。
转到服务(键盘快捷键窗口按钮+R然后键入
services.msc
然后按ENTER或确定),找到新安装的MySQL服务并单击start
。尝试连接到数据库。
推荐阅读
- asp.net-core - 鉴于 MiniProfiler.NET 的 ResultsAuthorize 处理程序需要包含在中间件的高处,什么是驱动 MiniProfiler.NET 处理程序的合适方法?
- r - 使用 R 读取 Microsoft Project 文件 (.mpp)?
- angular - 通过在 Angular 中返回字符串而不是 Observable 来消除 subscribe(...)
- python - 错误:命令出错,退出状态为 1:python setup.py egg_info 检查日志以获取完整的命令输出。
- reactjs - ReactJS - 从条形码图像组件中获取 base64 字符串
- python - 如果 dict.key 等于同一父节点中的其他 XML 节点,则将 ET.SubElement.text 设置为 dict.value
- gitlab - Gitlab:通过 API 列出 MR 中所有更改的文件
- python - RuntimeError at / cannot cache function '__shear_dense': no locator available for file '/home/...site-packages/librosa/util/utils.py'
- visual-studio-code - VS Code - 与 VPS 同步:添加文件/重命名/删除
- ruby-on-rails - 旧版本/不存在版本上的 Ruby 搜索模板