Fix XAMPP MySQL shutdown error
Fix an annoying MariaDB shutdown error that sometimes occurs when using XAMPP.
# Fix XAMPP MySQL error: Repeatedly unexpected MySQL shutdown
# More info: https://stackoverflow.com/a/61859561
require "array";
require "fileio";
const MYSQL_PATH string <= "C:/path/to/mysql";
global checkdir bool;
global enumres bool;
array arrExcludedFolders string 4 (
"mysql",
"performance_schema",
"phpmyadmin",
"test"
);
print "Fixing files and folders...";
dexists "%MYSQL_PATH/data_old" checkdir;
if (%checkdir, -eq, true) {
sys {rmdir /S /Q "%MYSQL_PATH/data_old"};
};
sys {move /Y "%MYSQL_PATH/data" "%MYSQL_PATH/data_old"};
sys {xcopy "%MYSQL_PATH/backup" "%MYSQL_PATH/data/" /E /V /I /Y};
function IsExcludeFolder bool(folderName string)
{
result false;
for (count, 0, %arrExcludedFolders.length, -inc) {
if (%folderName, -eq, %arrExcludedFolders[%count]) {
result true;
};
};
};
function CopyDbFolders int(baseObject string, iteratedObject string)
{
local dirtype bool;
local exclexists bool;
fdisdir "%baseObject%iteratedObject" dirtype;
if (%dirtype, -eq, true) {
call IsExcludeFolder("%iteratedObject") => exclexists;
if (%exclexists, -eq, false) {
sys {xcopy "%baseObject%iteratedObject" "%MYSQL_PATH/data/%iteratedObject" /E /V /I /Y};
};
};
result 1;
};
denum {%MYSQL_PATH/data_old/} "*.*" "CopyDbFolders" enumres;
sys {robocopy "%MYSQL_PATH/data_old" "%MYSQL_PATH/data" "ibdata1" /NDL /NJH /NJS /NC /NS /IS};
print "Done.";