ServBay MariaDB/MySQL 패키지 문제 해결 가이드
개요
MariaDB와 MySQL은 업계에서 가장 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템으로, 다양한 웹 애플리케이션 및 비즈니스 환경에 폭넓게 이용됩니다. ServBay는 macOS와 Windows 환경에서 여러 버전의 MariaDB/MySQL 패키지를 통합하여, 개발자에게 효율적이고 편리한 로컬 데이터베이스 환경을 제공합니다. 뛰어난 안정성을 자랑하지만, 개발이나 실행 중에 패키지 실행 불가·연결 실패·성능 저하 등 다양한 문제가 발생할 수 있습니다.
본 가이드는 ServBay 사용자들이 MariaDB/MySQL 패키지에서 흔히 겪는 문제를 진단, 해결할 수 있도록 작성되었습니다. 주요 이슈와 진단 방법, 해결책을 카테고리별로 안내하며, ServBay 환경에서의 전용 경로 및 명령어도 명확히 표기하였습니다.
중요 안내:
- 데이터나 설정에 영향을 줄 수 있는 작업을 하기 전에 반드시 데이터베이스 백업을 실행하세요! ServBay는 내장 백업 기능을 제공하므로, 정기적으로 활용하는 것을 추천합니다.
- 본문 예시의 경로 및 버전 (
11.3,11.5등)은 실제 사용 중인 MariaDB/MySQL 버전에 맞게 변경하세요. 설치 및 활성화된 버전 정보는 ServBay 앱에서 확인 가능합니다. - 명령어 예시 중
<username>,<database>,<your_backup.sql>등은 실제 사용자명, 데이터베이스명, 백업 파일명 등으로 바꿔서 사용하세요. - 이 가이드는 macOS와 Windows 모두 지원하며, 각 운영체제별 특화 경로와 명령어를 구분해 안내합니다.
일반적인 기본 진단 단계
문제의 원인을 구체적으로 파악하기 전에 다음 기본 확인을 권장합니다.
ServBay 패키지 상태 확인: ServBay 앱을 열고, 사용하고자 하는 MariaDB/MySQL 버전이 '실행 중'인지 확인하세요. 커맨드 라인 툴을 통해서도 상태 체크가 가능합니다:
bashservbayctl status mariadb <version> # 예시: MariaDB 11.3 상태 확인 servbayctl status mariadb 11.31
2
3ServBay 애플리케이션 로그 확인: 패키지 구동이나 관리 중 발생된 오류는 ServBay 앱 내 로그 영역이나 ServBay 메인 로그 파일에서 확인하세요.
MariaDB/MySQL 오류 로그 확인: 실행 실패 및 런타임 에러 원인을 파악할 때 가장 중요한 단계입니다. 로그 파일 경로는 아래와 같습니다:
macOS:
bash/Applications/ServBay/logs/mariadb/<version>/<version>.err # 예시: MariaDB 11.3의 최근 50행 오류 로그 보기 tail -n 50 /Applications/ServBay/logs/mariadb/11.3/11.3.err1
2
3Windows:
cmdC:\ServBay\logs\mariadb\<version>\<version>.err # 예시: MariaDB 11.3의 최근 50행 오류 로그 보기 powershell "Get-Content -Path 'C:\ServBay\logs\mariadb\11.3\11.3.err' -Tail 50"1
2
3로그 맨 아래의 에러 메시지가 문제 원인을 직접적으로 지시하는 경우가 많으니 꼼꼼히 확인하세요.
자주 발생하는 문제 및 해결법
1. 연결 오류: SQLSTATE[HY000] [2002] No such file or directory
이 오류는 주로 클라이언트가 Unix 소켓 파일을 통한 MariaDB/MySQL 서버 연결에 실패했을 때 나타납니다. macOS에서는 Unix 소켓이 로컬 프로세스 간 통신 방식으로, 본인 컴퓨터 내 연결 시 TCP/IP보다 오버헤드가 적고 빠릅니다. 그러나 해당 소켓 파일을 찾을 수 없으면 본 문제가 발생합니다.
주요 원인 및 해결 방법:
- MariaDB/MySQL 패키지 미실행:
- ServBay 앱이나
servbayctl status mariadb <version>명령어로 구동 상태를 재확인하세요. - 실행 중이 아니라면,
servbayctl start mariadb <version>으로 재실행하며.err오류 로그도 함께 점검하세요.
- ServBay 앱이나
- 소켓 파일 경로 오류 (macOS/Linux 한정):
- 클라이언트 연결 시 지정한 소켓 파일 경로가 서버 설정(
my.cnf)과 다릅니다. - macOS: MariaDB/MySQL 설정 파일(
/Applications/ServBay/etc/mariadb/<version>/my.cnf)에서socket파라미터값을 확인하세요. - Windows: Unix 소켓 미지원, 주로 네임드 파이프 또는 TCP/IP 연동만 가능합니다.
- macOS: 앱이나 툴이 ServBay 기본 소켓 경로에 연결하도록 맞추세요. 기본값은
/Applications/ServBay/tmp/혹은/tmp/내에 생성됩니다(예:/Applications/ServBay/tmp/mysql.sock,/tmp/mysql.sock).
- 클라이언트 연결 시 지정한 소켓 파일 경로가 서버 설정(
- ServBay 기본 설정 이슈:
- ServBay '설정' → '기본 SQL 서버'에서 올바른 버전을 기본값으로 선택하세요.
mysqlCLI 등 일부 도구는-S나-h를 지정 안할 경우 기본 버전의 소켓으로 접근합니다.
- ServBay '설정' → '기본 SQL 서버'에서 올바른 버전을 기본값으로 선택하세요.
- 권한 문제:
- macOS: MariaDB/MySQL 구동 계정이 소켓 파일이 위치한 폴더의 권한이 없거나, 클라이언트 사용자 계정이 읽기 권한이 없으면 연결 안 됩니다. ServBay는 권한을 자동 세팅해주지만 폴더 권한을 수동 변경했다면 오류가 날 수 있습니다.
- Windows: ServBay 실행 계정에 지정 포트/네임드 파이프 생성 권한이 있는지 확인하세요.
대안 (네트워크 연결 강제 사용):
- 클라이언트 연결 시 localhost 대신
127.0.0.1로 접속을 시도해 보세요. 이렇게 하면 TCP/IP를 반드시 사용하므로, 만약 이 방법으로만 연결된다면 문제는 소켓 파일에 있습니다.bashmysql -u <username> -p -h 127.0.0.1 -P 33061
2. 연결 오류: 네트워크 연결 관련 (Connection refused, Can't connect to MySQL server 등)
이런 오류는 클라이언트가 TCP/IP 네트워크를 통한 MariaDB/MySQL 서버 연결에 실패했을 때 발생합니다.
주요 원인 및 해결 방법:
MariaDB/MySQL 패키지 미실행: (앞서와 동일, 실행 상태 및
.err로그 확인)포트 충돌:
- MariaDB/MySQL가 사용하는 3306(기본값) 포트가 다른 애플리케이션에 의해 점유되지 않았는지 확인하세요.
macOS:
bashlsof -i :3306 # 또는 netstat -anv | grep LISTEN | grep 33061
2
3Windows:
cmdnetstat -an | findstr :3306 # PowerShell 사용 시 Get-NetTCPConnection -LocalPort 33061
2
3점유된 경우, 다른 프로세스를 중지하거나 MariaDB/MySQL 설정(
port파라미터) 포트를 변경 후 패키지 재실행하세요.- macOS:
/Applications/ServBay/etc/mariadb/<version>/my.cnf - Windows:
C:\ServBay\etc\mariadb\<version>\my.cnf
방화벽에 의한 연결 차단:
macOS:
- macOS '네트워크' → '방화벽' 설정을 확인하세요.
- 예시 명령:bash
# 실제 환경에 맞춰 경로 수정해야 함 sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/ServBay/bin/mariadb/<version>/bin/mysqld sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/ServBay/bin/mariadb/<version>/bin/mysqld1
2
3
Windows:
- Windows Defender 또는 기타 방화벽 설정 체크.
- 방화벽 예외 추가 명령:cmd
netsh advfirewall firewall add rule name="ServBay MariaDB" dir=in action=allow program="C:\ServBay\bin\mariadb\<version>\bin\mysqld.exe"1
설정 오류(
bind-address):my.cnf의bind-address가127.0.0.1이나localhost면 본인 PC에서만 접속 허용입니다. 외부 접근 필요시0.0.0.0또는 특정 IP로 지정 및 방화벽 허용 필요.
네트워크 설정 문제 (localhost 해석):
localhost가 제대로127.0.0.1(IPv4 루프백) 또는::1(IPv6)로 해석되는지 확인.
macOS:
bashping localhost cat /etc/hosts1
2Windows:
cmdping localhost type C:\Windows\System32\drivers\etc\hosts1
2hosts파일에 localhost 관련 항목 정상 등록됐는지 확인하세요. 프록시 서버/프로그램이 localhost 트래픽을 방해하지 않는지도 체크.
3. MariaDB/MySQL 패키지 실행 실패
주요 원인 및 해결 방법:
오류 로그 확인: 실행 실패 시 가장 먼저 오류 로그를 확인하세요.
- macOS:
/Applications/ServBay/logs/mariadb/<version>/<version>.err - Windows:
C:\ServBay\logs\mariadb\<version>\<version>.err
- macOS:
설정 파일 오류: 설정 파일 내 문법 오류, 잘못된 파라미터, 경로가 문제를 유발할 수 있습니다.
설정 파일 위치:
- macOS:
/Applications/ServBay/etc/mariadb/<version>/my.cnf - Windows:
C:\ServBay\etc\mariadb\<version>\my.cnf
설정 문법 점검:
bash# macOS /Applications/ServBay/bin/mariadb/<version>/bin/mysqld --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf --validate-config # Windows C:\ServBay\bin\mariadb\<version>\bin\mysqld.exe --defaults-file=C:\ServBay\etc\mariadb\<version>\my.cnf --validate-config1
2
3
4
5- macOS:
포트 충돌: (앞 챕터 참고,
lsof -i :<port>,netstat활용)디스크 공간 부족: 데이터베이스 데이터 또는 로그 디렉터리 저장 공간이 부족하면 실행에 실패할 수 있습니다.
경로 예시:
- macOS: 데이터
/Applications/ServBay/db/mariadb/<version>/, 로그/Applications/ServBay/logs/mariadb/<version>/ - Windows: 데이터
C:\ServBay\db\mariadb\<version>\, 로그C:\ServBay\logs\mariadb\<version>\
- macOS: 데이터
권한 문제: DB 실행 계정의 데이터, 설정, 로그 파일 접근 권한에 문제가 있으면 실행이 안 됩니다. ServBay가 기본적으로 권한을 설정하나, 수동으로 디렉터리나 파일 권한을 바꾼 경우 오류가 생길 수 있습니다.
macOS 권한 확인:
bashls -ld /Applications/ServBay/db/mariadb/<version> ls -l /Applications/ServBay/etc/mariadb/<version>/my.cnf ls -ld /Applications/ServBay/logs/mariadb/<version>1
2
3MariaDB/MySQL 실행 계정(예:
_mysql)이 적정 권한을 가져야 합니다.Windows 권한 확인: 파일 탐색기에서 파일/폴더 속성 및 ServBay 실행 계정 권한을 점검하세요.
데이터 파일 손상: (아래 "데이터베이스 충돌/손상" 챕터 참고) 비정상 종료 등으로 인해 데이터 파일이 손상될 경우 구동 불가.
문제 해결 후:
- 패키지 재실행:
servbayctl restart mariadb <version>
4. 사용자 권한 및 인증 문제
서버 연결은 되었으나 사용자명, 비밀번호, 권한 문제로 인한 에러(Access denied 등)가 발생할 수 있습니다.
주요 원인 및 해결 방법:
- 사용자명/비밀번호 오류: 입력값을 다시 한번 철저히 확인하세요. ServBay는 root 비밀번호를 초기화할 수 있으며, 잊으셨다면 앱의 해당 기능을 사용하세요.
- 접속 호스트 제한: DB 계정이 특정 호스트(예:
'<username>'@'localhost')에만 접속을 허용하면'<username>'@'127.0.0.1'등에서 접속 실패합니다.'%'는 모든 호스트 허용임. - 권한 부족: 사용자가 연결 대상 DB 및 필요한 작업(SELECT, INSERT, UPDATE, DELETE, CREATE, DROP 등)에 대한 권한이 없을 수 있습니다.
- 사용자 권한 확인 방법:
- root 계정으로 DB 접속:bash
mysql -u root -p1 - SQL에서 권한 상세 조회:sql
SHOW GRANTS FOR '<username>'@'<hostname>'; -- 예시: 'webapp' 사용자가 'localhost'에서 접속시 SHOW GRANTS FOR 'webapp'@'localhost'; -- 'admin' 사용자가 모든 호스트에서 접속시 SHOW GRANTS FOR 'admin'@'%';1
2
3
4
5 - 필요시
GRANT,REVOKE명령어로 권한 수정 또는 신규 사용자 생성 후 권한 부여하세요.
- root 계정으로 DB 접속:
5. 성능 저하 문제
DB 성능 저하는 전체 애플리케이션의 응답 속도를 떨어뜨릴 수 있습니다.
주요 원인 및 해결 방법:
- 느린 쿼리: 쿼리 자체가 비효율적이거나, 인덱스 미구현/실행 계획 오류 등이 원인.
- 느린 쿼리 로그 활성화:
my.cnf에서slow_query_log = 1,long_query_time = 1(1초 이상만 기록), 로그 경로slow_query_log_file을 지정하세요. 패키지 재실행 후 로그를 분석해 성능 저하 쿼리를 찾으세요. EXPLAIN사용: 성능 이슈 의심 쿼리에EXPLAIN을 붙여 실행 계획을 점검하세요. 인덱스 사용 여부, 스캔되는 레코드 수 등 병목을 찾을 수 있습니다.sqlEXPLAIN SELECT * FROM your_table_name WHERE column_name = 'value';1- 쿼리 최적화: EXPLAIN 분석결과에 따라 쿼리를 재작성하세요. 비효율적 연산이나, 인덱스가 필요함에도 없는 조건, SELECT * 남발 등을 피해 주세요.
- 느린 쿼리 로그 활성화:
- 인덱스 미비/오류: WHERE, ORDER BY, GROUP BY 등에 자주 사용되는 컬럼에는 적절한 인덱스가 필요합니다.
- 테이블 구조 및 쿼리 분석: 인덱스가 필요한 컬럼을 식별하세요.
- 인덱스 생성 예시:sql인덱스 추가는 쓰기 부하와 공간 점유도를 높이므로 상황에 맞게 설계하세요.
CREATE INDEX idx_column_name ON your_table_name(column_name);1
- 캐시 설정 미흡:
innodb_buffer_pool_size,key_buffer_size(MyISAM)등 캐시 관련 설정값이 너무 낮거나 높거나 모두 문제입니다.- 설정 최적화: macOS 메모리 용량과 주요 사용 목적에 맞게, 특히 InnoDB라면
innodb_buffer_pool_size를 시스템 가용 메모리의 50~70% 수준으로 설정하세요. 설정 변경 후 패키지 재실행이 필요합니다.ini[mysqld] # 예시, 실제 사용 환경에 맞게 조절(K, M, G 단위) innodb_buffer_pool_size = 2G # MyISAM 테이블을 많이 쓴다면: # key_buffer_size = 256M1
2
3
4
5
- 설정 최적화: macOS 메모리 용량과 주요 사용 목적에 맞게, 특히 InnoDB라면
- 하드웨어 자원 한계: CPU 사용률, 메모리 부족(스와핑 빈도), 디스크 I/O가 병목이 될 수 있습니다. macOS Activity Monitor나 터미널의
top,htop등으로 시스템 자원 상태를 모니터링해 병목 원인을 파악하세요.
6. 데이터베이스 충돌 또는 데이터 손상
DB가 실행 불가, 자주 충돌하거나 데이터 접근시 오류가 발생하는 경우 데이터 손상일 수 있습니다.
주요 원인 및 해결 방법:
- 오류 로그 확인: 크래시 로그에는 InnoDB 오류, 파일 시스템 문제, 하드웨어 오류 내역이 남는 경우가 많습니다.
- macOS:
/Applications/ServBay/logs/mariadb/<version>/<version>.err - Windows:
C:\ServBay\logs\mariadb\<version>\<version>.err
- macOS:
- 하드웨어 결함: 디스크, 메모리 등 하드웨어 오류는 데이터 이상/손상 원인입니다. 시스템 로그 및 진단 툴로 점검하세요.
- 소프트웨어 버그/충돌: 특정 MariaDB/MySQL 버전의 버그, 또는 다른 서비스와 충돌이 문제일 수 있습니다.
- 설정 오류:
my.cnf값이 잘못되면 불안정하거나 실행 불가 상태가 될 수 있습니다. - 강제 종료/중단: 정상적인 MariaDB/MySQL 종료 과정이 아니었거나, ServBay 앱이나 프로세스를 강제 종료하면 데이터 파일이 불일치 상태가 될 수 있습니다.
해결 방법:
- 안전하게 재실행 시도: ServBay 앱이나 CLI로 정상적 방법으로 패키지를 재시작하세요:
servbayctl restart mariadb <version>. mysqlcheck로 테이블 검사/복구: 테이블 손상은 mysqlcheck 툴로 진단 및 복구 가능한 경우가 많습니다(MyISAM에 특히).bash주의:mysqlcheck --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u root -p --check --all-databases # MyISAM 테이블의 자동 복구 시도 # mysqlcheck --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u root -p --auto-repair --check --all-databases1
2
3--auto-repair는 MyISAM 테이블에만 적용됩니다. InnoDB는 추가적인 작업과 복잡한 복구가 필요합니다(아래 InnoDB 강제 복구 참고).- InnoDB 강제 복구(
innodb_force_recovery): InnoDB 스토리지 엔진이 오류로 실행되지 않을 때 강제 옵션을 적용해보기(주의: 데이터 손실 가능, 백업 이후 시도).- 먼저 데이터 디렉터리 전체 백업:
/Applications/ServBay/db/mariadb/<version>/폴더 전체를 복사하세요(이후 손상 심해질 수 있으니 반드시 백업 할 것). - 문제 버전의
my.cnf(/Applications/ServBay/etc/mariadb/<version>/my.cnf)를 수정하세요. [mysqld]아래에innodb_force_recovery = N(N은 1부터, 실패 시 순차적으로 6까지 증가하며 시도. 매번 하나씩 증가만.)를 작성.- MariaDB/MySQL 구동 시도:
servbayctl start mariadb <version> - 실행 성공(제한모드라도) 시 즉시
mysqldump로 모든 데이터 백업:bash백업 파일 용량 및 완전성도 꼭 검증하세요.mysqldump --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u root -p --all-databases --routines --triggers --events > /path/to/your_emergency_backup.sql1 - 백업 후 즉시 MariaDB/MySQL 중지:
servbayctl stop mariadb <version> innodb_force_recovery = N를 주석 처리 또는 삭제(설정복구).- 데이터 복구 진행: 새 데이터 디렉터리 초기화 후 백업 덤프 파일을 새 DB에 복구하세요.
- 먼저 데이터 디렉터리 전체 백업:
- 백업에서 복구: 모든 복구가 실패하거나 손상 시, 최근의 정상 백업에서 복구하세요. ServBay는 내장 백업 기능과 파일 저장 경로(
/Applications/ServBay/backup/mariadb/<version>/)를 제공합니다.- 복구 예시(
target_database_name에 임포트):bash참고:# target 데이터베이스가 이미 존재해야 함 # mysql --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u root -p -e "CREATE DATABASE <target_database_name>;" # 백업 파일로 데이터 복구 mysql --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u <username> -p <target_database_name> < /Applications/ServBay/backup/mariadb/<version>/<your_backup.sql>1
2
3
4
5<version>을 실제 사용 버전으로 변경하세요.
- 복구 예시(
7. 백업 및 복구 관련 문제
ServBay 내장 백업 기능이나 직접 mysqldump로 백업/복구 시 다양한 문제가 발생할 수 있습니다.
주요 원인 및 해결 방법:
- 백업 파일 불완전/손상:
- 백업 파일의 용량(
ls -lh /path/to/your_backup.sql) 및 내용(less /path/to/your_backup.sql)을 확인해 정상 SQL 파일이 맞는지 확인하세요. mysqldump로 수동 백업 시 명령어 실행 중 오류 메시지 확인, 내장 백업 기능 사용시 ServBay 애플리케이션 로그에서 진행상황을 체크하세요.
- 백업 파일의 용량(
- 복구 명령어 오류:
- 사용자, 비밀번호, 데이터베이스명 등을 잘못 입력한 경우.
- 해당 계정의 데이터 복구 권한 부족.
- SQL 문법 오류: 다른 버전 간(MySQL↔MariaDB) 혹은 서로 다른 DB에서 덤프 시 비호환 SQL이 발생 가능.
- 외래키 제약: 복구 시 테이블 순서로 인해 외래키 제약 오류가 발생할 수 있습니다. 임포트 전 잠시 외래키 체크 비활성화 후 복구, 이후 재활성화하세요.sql주의: 외래키 체크 비활성화는 데이터 불일치 위험이 있으니 복구 때만 활용하세요.
-- 복구 전 SET foreign_key_checks = 0; -- SQL 파일 임포트 source /path/to/your_backup.sql; -- mysql 클라이언트에서 실행 -- 또는 CLI에서 임포트: mysql ... < /path/to/your_backup.sql -- 복구 완료 후 SET foreign_key_checks = 1;1
2
3
4
5
6
7
8 - 문자셋/콜레이션 문제: 백업 데이터나 테이블 정의의 문자셋/콜레이션이 실제 DB와 불일치 시 복구 에러 또는 데이터 깨짐 발생. utf8mb4 등 호환 문자셋을 사용하도록 설정하세요.
정상적인 데이터베이스 복구 명령어 예시:
macOS:
bash
# 특정 데이터베이스 대상 백업 파일 임포트
# target 데이터베이스(<target_database_name>)가 미리 생성되어야 함
# mysql --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u root -p -e "CREATE DATABASE <target_database_name>;"
# 복구 실행
mysql --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u <username> -p <target_database_name> < /Applications/ServBay/backup/mariadb/<version>/<your_backup.sql>
# 전체 데이터베이스 백업(--all-databases) 시 데이터베이스명 생략
# mysql --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u <username> -p < /Applications/ServBay/backup/mariadb/<version>/<your_backup.sql>1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Windows:
cmd
REM 특정 데이터베이스 대상 백업 파일 임포트
REM target 데이터베이스(<target_database_name>)가 미리 생성되어야 함
REM C:\ServBay\bin\mariadb\<version>\bin\mysql.exe --defaults-file=C:\ServBay\etc\mariadb\<version>\my.cnf -u root -p -e "CREATE DATABASE <target_database_name>;"
REM 복구 실행
C:\ServBay\bin\mariadb\<version>\bin\mysql.exe --defaults-file=C:\ServBay\etc\mariadb\<version>\my.cnf -u <username> -p <target_database_name> < C:\ServBay\backup\mariadb\<version>\<your_backup.sql>
REM 전체 데이터베이스 백업(--all-databases) 시 데이터베이스명 생략
REM C:\ServBay\bin\mariadb\<version>\bin\mysql.exe --defaults-file=C:\ServBay\etc\mariadb\<version>\my.cnf -u <username> -p < C:\ServBay\backup\mariadb\<version>\<your_backup.sql>1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
참고: <version>은 실제 대상 MariaDB/MySQL 버전으로 입력하세요. ServBay 내장 백업은 복구하기 쉬운 파일을 생성하며, 복원 옵션도 제공합니다.
8. 특수 버그: MariaDB 11.5.1 InnoDB 실행 오류 (ib_logfile0 was not found / Missing FILE_CHECKPOINT)
해당 문제는 MariaDB 11.5.1의 알려진 심각한 버그로, InnoDB 스토리지 엔진이 로그 파일 복구나 초기화에 실패해 DB가 실행되지 않는 현상입니다.
오류 로그 예시:
오류 로그 내에 아래와 비슷한 메시지가 출력될 수 있습니다.
macOS 예시(/Applications/ServBay/logs/mariadb/11.5/11.5.err):
[ERROR] InnoDB: File /Applications/ServBay/db/mariadb/11.5/ib_logfile0 was not found
[ERROR] InnoDB: Plugin initialization aborted with error Generic error
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB1
2
3
4
2
3
4
Windows 예시(C:\ServBay\logs\mariadb\11.5\11.5.err):
[ERROR] InnoDB: File C:\ServBay\db\mariadb\11.5\ib_logfile0 was not found
[ERROR] InnoDB: Plugin initialization aborted with error Generic error
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB1
2
3
4
2
3
4
또는,
[ERROR] InnoDB: Missing FILE_CHECKPOINT(xxxxx) at xxxxx
[ERROR] InnoDB: Log scan aborted at LSN xxxxx
[ERROR] InnoDB: Plugin initialization aborted with error Generic error
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB1
2
3
4
5
2
3
4
5
이러한 오류는 InnoDB가 로그 파일을 찾지 못하거나 손상된 경우로, 엔진 초기화에 실패했음을 의미합니다.
해결 방법(데이터 백업/마이그레이션 권장):
일상적인 방법으로는 복구가 어렵고, 강제 구동 후 데이터 백업 및 안정 버전 마이그레이션이 가장 안전합니다.
백업 우선, 강제 복구 시도(위험 수반):
설정 파일 수정:
- macOS:
/Applications/ServBay/etc/mariadb/11.5/my.cnf - Windows:
C:\ServBay\etc\mariadb\11.5\my.cnf
[mysqld]아래에innodb_force_recovery = 6을 추가하세요.서비스 실행 시도:
bashservbayctl start mariadb 11.51가능하면 즉시 백업:
macOS:
bashmysqldump --defaults-file=/Applications/ServBay/etc/mariadb/11.5/my.cnf -u root -p --all-databases --routines --triggers --events > /Applications/ServBay/backup/mariadb/11.5/mariadb_11.5_emergency_backup.sql1Windows:
cmdC:\ServBay\bin\mariadb\11.5\bin\mysqldump.exe --defaults-file=C:\ServBay\etc\mariadb\11.5\my.cnf -u root -p --all-databases --routines --triggers --events > C:\ServBay\backup\mariadb\11.5\mariadb_11.5_emergency_backup.sql1백업 파일 용량 및 정상 여부 필히 확인하세요.
- macOS:
문제 버전 데이터 디렉터리 정리:
- MariaDB 11.5 패키지 중지:
servbayctl stop mariadb 11.5 - 설정 파일 내
innodb_force_recovery항목을 삭제하거나 주석 처리
- MariaDB 11.5 패키지 중지:
