programing

WP CLI는 DB를 복구해야 하지만 WP 자체는 작동한다고 주장합니다.

codeshow 2023. 8. 15. 11:49
반응형

WP CLI는 DB를 복구해야 하지만 WP 자체는 작동한다고 주장합니다.

배포/업그레이드 스크립트에서 wp-cli를 사용합니다.현재 다음 오류가 발생했습니다.wp core is-installed(내 스크립트가 wp cli로 수행하는 첫 번째 명령)

오류: 하나 이상의 데이터베이스 테이블을 사용할 수 없습니다.데이터베이스를 복구해야 할 수 있습니다.

그래서 뛰었습니다.mysqlcheck --all-databases --check --extendedDB 오류가 무엇인지 확인하지만 모든 테이블이 정상이라고 보고합니다!

또한 사이트 자체가 작동하는 것처럼 보이기 때문에(관리자 로그인, 페이지 보기 등이 가능) 한편으로는 wp-cli 문제처럼 느껴지지만, 다른 한편으로는 wp core 또는 DB에서 발생합니다.

제가 어디서 찾을 수 있는지 아는 사람 있나요?아파치 로그에는 항상 발생하는 몇 가지 경고 외에는 아무것도 없습니다.

WordPress 5.4.2 및 wp-cli 2.4.0을 실행합니다.처음 오류가 발생했을 때는 WP 버전을 이전에 업데이트한 후 "업그레이드" 루틴을 실행하지 않았지만, 관리자로 들어가 "네트워크 업그레이드"를 클릭했습니다.성공했지만 CLI는 여전히 실패합니다.

데이터베이스는 10.4.13-MariaDB이고 PHP 버전은 7.3.19입니다. Cent에서 실행됩니다.OS Linux.

mariadb.log를 확인했습니다(고맙습니다 @nbk).사이트나 wp-cli 명령을 실행할 때는 아무 것도 나오지 않습니다.그러나 실행 시mysqlcheck명령 다음과 같은 오류가 발생합니다.

[ERROR] InnoDB: 인덱스 레코드의 순서가 잘못되었습니다.option_name식탁의myschema.wp_options

전체 스키마를 내보내거나 다시 가져오려고 합니다.

DB는 어떻게든 utf8 테이블과 utf8mb4 테이블을 혼합한 것으로 보입니다.방법을 잘 모르겠습니다.MariaDb 버전 업그레이드 전후에 생성된 것으로 추측하지만 사실인지는 모르겠습니다.어쨌든, 우리는 전체 스키마를 내보내고, 덤프 파일의 데이터 정렬을 수정한 후 다시 가져오는 방식으로 해결했습니다.

만약 버그가 있다면, 그것은 그 안에 있다고 말할 것입니다.mysqlcheckmariadb.log에서 잘못된 형식의 레코드에 대한 오류를 트리거하는 동안에도 모든 것을 정상으로 보고한 명령입니다.

언급URL : https://stackoverflow.com/questions/62646343/wp-cli-claims-db-needs-repairing-but-wp-itself-works

반응형