도커 업데이트 후 Mysql 테이블이 없음: "TableName이 엔진에 없습니다."
최근 도커 업데이트로 인해 (일부만)MariaDB 내의 InnoDB 테이블에 액세스할 수 없습니다.이해:
#1932 - Table 'dbname.SomeTableName' doesn't exist in engine
액세스하려고 할 때(표 목록에 표시됨).Docker(및 이미지)는 이전에 문제없이 업데이트했습니다.DB 파일 및 권한은 정상으로 표시됩니다.
백업에서 누락된 테이블(최대 35개 중 4개)만 다시 생성할 수 있지만 삭제하려고 하면 다음과 같은 메시지가 나타납니다.
#1347 - 'dbname.SomeTableName' is not VIEW
도커 이미지를 사용하고 있습니다.mariadb:10.2
(MariaDB-10.2.12+maria~jessie)는 로컬 Docker-for-Mac 개발 환경의 일부로서 영속적인 데이터 스토리지를 위한 바인드 마운트를 갖추고 있습니다.docker-compose.yml 파일은 다음과 같습니다.
mysql: image: mariadb:10.2 volumes: - ./data/mysql:/var/lib/mysql
이 에러는 지금까지 발생한 적이 없기 때문에 액세스 불가능한 테이블을 덤프 또는 내보낼 수 없습니다.복원 또는 복구(또는 삭제)할 수 있는 방법이 있습니까?데이터베이스 전체를 재작성할 필요는 없습니다.
이 문제를 해결하려면 로컬에 커스텀 mysql 설정을 사용하고 다음을 추가합니다.
[mysqld]
lower_case_table_names=1
위의 텍스트를 포함하는 파일을 다음과 같이 mysql conf.d 디렉토리에 마운트하면 기본 설정을 변경하지 않고 이를 수행할 수 있습니다.
volumes:
- ./mysql_local.cnf:/etc/mysql/conf.d/mysql_local.cnf:ro
언급URL : https://stackoverflow.com/questions/49041690/mysql-tables-missing-after-docker-update-tablename-doesnt-exist-in-engine
'source' 카테고리의 다른 글
Larabel 5 마이그레이션 식별자 이름이 너무 깁니다. (0) | 2022.12.18 |
---|---|
매크로에서 1과 0을 정의하기 위해 3진 연산자를 사용하는 이유는 무엇입니까? (0) | 2022.12.18 |
PHP를 사용하여 한 달 중 처음과 마지막 날짜를 찾는 방법은 무엇입니까? (0) | 2022.12.08 |
.prop() vs .attr() (0) | 2022.12.08 |
phpmyadmin : 의존: php-twig (>= 2.9) 단, 2.6.2-2 가 인스톨 됩니다.뭐라고? (0) | 2022.12.08 |