更改MySQL数据库的数据文件夹

时间:2012-03-19 11:11:40

标签: mysql

我尝试通过更改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  

2 个答案:

答案 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 上继续有效