- 정보처리기사
- Oracle
- unsub
- 이기적
- 데이터베이스
- 네이버부스트캠프
- [멀티잇]데이터 시각화&분석 취업캠프(Python)
- 이것이 취업을 위한 코딩테스트다 with 파이썬
- 빅데이터분석기사
- 코딩테스트
- 데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- AI 플랫폼을 활용한 데이터 분석
- Ai
- DB
- 프로그래머스
- 빅데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- 파이썬
- 코딩테스트 python
- boostcourse
- 인공지능기초다지기
- Django
- python
- 부스트코스
- r
- PY4E
- 기초다지기
- boostcoures
- 빅분기
- SQL
- 오라클
- Today
- Total
매일공부
[MariaDB] 전혀 다른 작업 중에 우연히 발견한 버전 불일치 문제 본문
배경
nginx/네트워크 작업(전편)을 하던 도중, DB 관련 에러 로그에서 이런 메시지를 발견했다.
Column count of mysql.proc is wrong. Expected 22, found 21.
Created with MariaDB 10.11.6, now running 12.3.02
처음엔 오늘 하던 작업 때문인 줄 알았다
네트워크를 막 바꾸고 있던 타이밍에 뜬 에러라, 당연히 그 작업 때문에 생긴 문제라고 생각했다. 하지만 완전히 무관한 별개의 문제였다.
진짜 원인 — mariadb-upgrade를 한 번도 안 돌렸다
메시지를 그대로 읽어보면 답이 나온다: 이미지가 이미 메이저 버전 두 단계(10.11 → 12.3)를 건너뛴 채 실행 중이었고, 버전을 올린 뒤 mariadb-upgrade를 한 번도 실행하지 않아서 시스템 테이블(mysql.proc 등)이 예전 스키마 그대로 남아있던 것.
DB 서버 자체는 이미 새 버전(12.3.02)으로 돌고 있는데, 시스템 테이블은 예전 버전(10.11.6) 구조 그대로라서 컬럼 개수가 안 맞는다고 계속 경고가 찍히고 있었다.
원인 추정: 이미지 태그가 특정 버전(mariadb:10.11.6)이 아니라 느슨한 태그로 설정되어 있어서, 컨테이너가 재시작될 때마다 자동으로 최신 이미지를 받아온 것으로 보인다. "고정해뒀다고 생각했던" 버전이 실제로는 고정되어 있지 않았던 셈.
해결
트리거를 많이 쓰는 프로젝트라 신중하게 진행했다.
- DB 백업
- 컨테이너 안에서 mariadb-upgrade -u root -p 실행
- Phase 8/8까지 정상 완료 확인
- dev/prod 컨테이너 재연결 확인
정상 완료 후 문제없이 복구됐다.
교훈 — 같은 타이밍에 뜬 에러가 항상 지금 하던 작업 때문은 아니다
오늘 하던 작업(nginx/네트워크)과 완전히 무관한 문제가 우연히 같은 타이밍에 로그에 찍히면, 지금 하던 작업이 원인이라고 성급하게 결론짓기 쉽다. 실제로도 처음엔 "이거 네트워크 바꿔서 그런가?"부터 의심했다.
에러 메시지 자체가 가리키는 원인을 먼저 정확히 읽고, 그게 지금 진행 중인 작업과 실제로 인과관계가 있는지를 따로 확인해야 한다. 이번 경우엔 메시지에 원인(버전 불일치)이 이미 명시되어 있었는데도, 타이밍이 겹친다는 이유만으로 잠깐 엉뚱한 방향(네트워크)을 의심했었다.
이 버그 자체는 아마 꽤 오래전부터 조용히 존재하고 있었을 가능성이 높다 — 이미지가 자동으로 최신 버전을 받아오는 구조였다면, 그 시점부터 mariadb-upgrade가 필요했을 텐데 아무도 그걸 몰랐을 것이다. 오늘 우연히 컨테이너를 재시작하는 작업(네트워크 변경)을 하면서 로그에 다시 찍혀 눈에 띈 것뿐이었다.
'IT > 작업기록' 카테고리의 다른 글
| [NAS 트러블슈팅] Log Center 종료 실패 에러, 원인은 예약된 PowerOff Task였다 (0) | 2026.08.31 |
|---|---|
| [SSH] 처음부터 설정하기 — 키 생성부터 접속까지 (1) | 2026.08.28 |
| [Docker] 네트워크 통합하다가 DB가 통째로 끊긴 사고 (0) | 2026.08.28 |
| [Docker] docker-compose 없이 Container Manager로 nginx 붙이기 (0) | 2026.08.28 |
| [Django] 화면에서 로고 이미지가 깨지는데 PDF에는 정상 — DEBUG=False의 함정 (0) | 2026.08.27 |