1. 문제 상황

① DB 접속 시 1061 연결 오류 발생
- HeidiSQL 등에서 로컬 DB 접속 불가 (127.0.0.1)
- 에러 코드: 1061 / 연결 거부
- 다른 pc인 서버쪽 DB는 정상 접속이 되었음.
② Windows 서비스 확인 → MySQL(MariaDB) 서비스 중지 상태
- services.msc 확인 결과
- MySQL(MariaDB) 서비스가 실행 중이 아님
그래서 서비스를 직접 시작 시도.
③ 서비스 시작 시 1067 오류 발생

- 서비스 시작 버튼 클릭 시
- 오류 1067: 프로세스가 예기치 않게 종료되었습니다
이 시점에서:
- mysqld가 기동 중 mysql 시스템 테이블(권한/통계)을 읽다가 크래시
- 서비스가 즉시 종료됨
2. 로그 분석
- 경로
<MariaDB 설치 경로>/data/DESKTOP-F52LF5I.err
DESKTOP-F52LF5I.err 파일에 들어가 로그를 보니
2026-01-14 11:20:10 44208 [ERROR] InnoDB: Column table_name in table `mysql`.`innodb_table_stats` is VARCHAR(597) NOT NULL but should be VARCHAR(192) NOT NULL (length mismatch).
2026-01-14 11:20:10 44208 [ERROR] InnoDB: Fetch of persistent statistics requested for table `mysql`.`gtid_slave_pos` but the required system tables mysql.innodb_table_stats and mysql.innodb_index_stats are not present or have unexpected structure. Using transient stats instead.
2026-01-14 11:20:10 51208 [Note] InnoDB: Buffer pool(s) load completed at 260114 11:20:10
2026-01-14 11:20:10 14736 [Note] Reading of all Master_info entries succeded
2026-01-14 11:20:10 14736 [Note] Added new Master_info '' to hash table
2026-01-14 11:20:10 14736 [Note] C:\Program Files\MariaDB 10.2\bin\mysqld.exe: ready for connections.
Version: '10.2.14-MariaDB' socket: '' port: 0 mariadb.org binary distribution
2026-01-14 11:20:10 14736 [ERROR] TCP/IP, --shared-memory, or --named-pipe should be configured on NT OS
2026-01-14 11:20:10 14736 [ERROR] Aborting
이런 에러들이 있었고.. 버전 업/재설치/데이터 디렉터리 변경/ibdata1 재초기화 같은 이력 때문에 mysql DB 안에 있는 시스템 InnoDB 테이블(통계/복제 관련)”구조가 현재 서버가 기대하는 구조와 달라진 상태
→ 즉, InnoDB 테이블쪽의 구조 불일치, 권한/통계 로딩 단계에서의 문제인 것 같아요
④ my.ini 옵션 추가
서비스 기동을 위해 my.ini에 아래 옵션을 추가함.
[mysqld]
skip-grant-tables
- skip-grant-tables
→ 권한 테이블 무시 → 크래시는 우회됨
- 서비스가 즉시 종료되지 않고 정상적으로 실행 상태 유지
- mysql 권한(ACL) 테이블을 아예 읽지 않음
- 권한 테이블에서 발생하던 크래시 우회
⑤ 서비스 시작 성공

- 1067 오류 없이 MySQL(MariaDB) 서비스가 정상적으로 “실행 중” 상태로 유지
⑥ DB 접속 재시도 → 정상 접속
- HeidiSQL / 로컬 DB 접속 성공
- 데이터 정상 확인 가능
결론적으로 문제는 DB 엔진 자체가 아니라 mysql 시스템 테이블(권한/통계) 로딩 단계에서 발생한 크래시.
3. 핵심 포인트 정리
- ❌ 1061 오류의 원인
- DB 접속 문제 ❌
- 네트워크 문제 ❌
- 포트 충돌 ❌
- 👉 애초에 DB 서비스가 실행 중이 아니었음
- ❌ 1067 오류의 원인
- 서비스 자체 문제 ❌
- 설치 문제 ❌
- 👉 mysql 시스템 테이블 손상으로 mysqld가 기동 중 크래시
- ✅ skip-grant-tables의 역할
- 권한 테이블을 건너뛰어 크래시 지점을 우회
- 서비스 기동 가능
- DB 접속 가능
skip-grant-tables 상태는 복구용 임시 상태다.
- 비밀번호 무시
- 권한 체크 없음
- 운영 환경에 그대로 두면 보안 사고 위험
반드시:
- mysqldump로 백업
- mysql_upgrade 또는
- 새 datadir로 재구성 후 정상화 필요
1061은 결과였고, 1067이 원인이었다. mysql 서비스가 죽어 있던 이유는 권한 테이블 로딩 단계에서의 크래시였고,
skip-grant-tables은 그 지점을 우회해 서버를 살린 임시 해결책이다.
참고
https://blog.naver.com/hanajava/220828705374