我尝试通过更改my.ini文件中的datadir参数来更改MySQL的数据文件夹路径。但是当我再次重启MySQL服务时,我收到以下错误:
错误1067:进程意外终止。
我检查了.err文件,出现以下错误:(它们都是关于InnoDB的)
120319 3:59:59 [Note] Plugin 'FEDERATED' is disabled.
120319 3:59:59 InnoDB: The InnoDB memory heap is disabled
120319 3:59:59 InnoDB: Mutexes and rw_locks use Windows interlocked functions
120319 3:59:59 InnoDB: Compressed tables use zlib 1.2.3
120319 3:59:59 InnoDB: Initializing buffer pool, size = 75.0M
120319 3:59:59 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file .\ib_logfile0 is of different size 0 99614720 bytes
InnoDB: than specified in the .cnf file 0 39845888 bytes!
120319 3:59:59 [ERROR] Plugin 'InnoDB' init function returned error.
120319 3:59:59 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
120319 3:59:59 [ERROR] Unknown/unsupported storage engine: INNODB
120319 3:59:59 [ERROR] Aborting
答案 0 :(得分:1)
您必须为以下内容指定正确的尺寸: 你的my.cnf或my.ini中的innodb_log_file_size = 95M。目前我猜它是38M。
还要从您的数据文件夹中检查您拥有多少ib_logfiles。如果您有2个以上,请同时指定:innodb_log_files_in_group = 2。
答案 1 :(得分:0)
这是在 Windows 上吗?如果是这样,可以使用 VHD 作为 MariaDB/MySQL 的存储设备。我这样做是为了防止在我安装或更新数据库软件(在 Wamp、Xampp、Mamp、Wampserver 等中)时丢失数据
为此,我创建了一个带有 diskpart 的 VHD,并在启动时将其挂载到相应 MariaDB 或 MySQL 文件夹中的数据文件夹(首先将原始移动到 data.orig 并在设备运行后立即将其复制回来)
我使用这个脚本在启动时挂载 vhd:
diskpart /s "C:\ProgramData\DB\connectvdisk\attach_mariadb-data.diskpart"
attach_mariadb-data.diskpart 包含的位置
select vdisk file="c:\ProgramData\DB\mariadb-daten.vhdx"
attach vdisk
并且将 vhdx 设置为挂载到磁盘管理器中的正确位置。
脚本在启动时执行(触发器:At Startup),任务计划程序运行cmd.exe,参数如下
/c "C:\ProgramData\DB\connectvdisk\connect-vhd.cmd"
我劫持了这种存储的 ProgramData 文件夹。在某些系统上,我已将脚本和设备移动到辅助存储 (D:) 以确保它能够在操作系统重新安装后继续存在。
这在 Windows 11 上继续有效