> 데이터 베이스 > MySQL 튜토리얼 > mysql innodb 예외를 처리하는 방법

mysql innodb 예외를 처리하는 방법

WBOY
풀어 주다: 2023-04-17 21:01:06
앞으로
1796명이 탐색했습니다.

mysql innodb 예외를 처리하는 방법

1. 돌아가서 mysql을 다시 설치하세요

이 데이터를 다른 곳에서 가져오는 문제를 피하려면 먼저 현재 라이브러리의 데이터베이스 파일(/var/lib/mysql/location)을 백업하세요. . 다음으로 Percona 서버 5.7 패키지를 제거하고 원래 5.1.71 패키지를 다시 설치한 후 mysql 서비스를 시작했습니다. Unknown/unsupported table type: innodb 메시지가 표시되고 정상적으로 시작할 수 없습니다.

110509 12:04:27 InnoDB: Initializing buffer pool, size = 384.0M
110509 12:04:27 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 157286400 bytes!
110509 12:04:27 [ERROR] Plugin 'InnoDB' init function returned error.
110509 12:04:27 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
110509 12:04:27 [ERROR] Unknown/unsupported table type: innodb
110509 12:04:27 [ERROR] Aborting
110509 12:04:27 [Note] /usr/sbin/mysqld: Shutdown complete
로그인 후 복사

/var/lib/mysql/ 디렉터리를 삭제하고 데이터베이스 서비스를 다시 시작한 후 초기화하면 정상적으로 표시됩니다. innodb 엔진을 찾을 수 있습니다. 그런 다음 데이터베이스를 중지하고 이전에 백업한 /var/lib/mysql/ 디렉터리의 내용을 현재 위치의 내용으로 덮어쓴 후 다시 시작합니다. 또한 시작할 수 없고 오류 내용도 이전과 동일하다는 것을 확인했습니다.

/var/lib/mysql 디렉토리의 내용 구조는 다음과 같습니다.

-rw-rw---- 1 mysql mysql 10485760 2月 26 18:10 ibdata1
-rw-rw---- 1 mysql mysql 5242880 2月 26 18:10 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 2月 26 17:20 ib_logfile1
drwx------ 2 mysql mysql 4096 2月 26 17:20 mysql
drwx------ 2 mysql mysql 4096 2月 26 17:24 wiki
로그인 후 복사

wiki 디렉토리는 테스트 데이터용 라이브러리, ibdata1 파일은 데이터 파일, ib로 시작하는 두 파일은 로그 파일입니다. , 그리고 mysql 디렉토리에는 시스템 라이브러리와 관련된 것들이 포함되어 있습니다. 초기화된 데이터를 다시 사용하고, wiki 디렉토리와 ibdata1 파일을 /var/lib/mysql 디렉토리에 덮어쓰면 정상적으로 시작하고 로그인할 수 있습니다.

2. innodb 모듈을 다시 설치합니다.

그러나 mysqldump를 통해 백업할 때 알 수 없는 테이블 엔진 "Innodb"가 표시됩니다. 로그인 후 현재 엔진 유형을 모두 확인하고 그중 innodb 유형이 존재하지 않는지 확인합니다.

mysql innodb 예외를 처리하는 방법

alter 명령을 사용하여 테이블 중 하나의 유형을 MyISAM으로 수정하고 오류가 있는지 확인합니다. 아직도 보고되고 있습니다.

mysql innodb 예외를 처리하는 방법

find를 사용하여 /usr/lib64/mysql/plugin/ 디렉터리에서 ha_innodb_plugin.so 파일을 찾으세요. mysql5의 최신 버전이 온라인 플러그인 설치를 지원한다는 인상을 받았습니다. 실제로 지원되는지 확인하려면 다음을 확인하십시오.

mysql innodb 예외를 처리하는 방법

다음 명령을 사용하여 로드할 때 실패한 것으로 나타났습니다.

install plugin innodb soname 'ha_innodb.so';
로그인 후 복사

3. 백업

/etc/my.cnf에 다음 구성을 추가합니다. :

plugin-load=innodb=ha_innodb_plugin.so
plugin_dir=/usr/lib64/mysql/plugin/
default-storage-engine=InnoDB
로그인 후 복사

아직 시동이 실패한 것으로 확인되었습니다. mysql-error.log를 확인하고 다음 내용을 찾으세요.

InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 7.
InnoDB: You may have to recover from a backup.
InnoDB: It is also possible that your operating
InnoDB: system has corrupted its own file cache
InnoDB: and rebooting your computer removes the
InnoDB: error.
InnoDB: If the corrupt page is an index page
InnoDB: you can also try to fix the corruption
InnoDB: by dumping, dropping, and reimporting
InnoDB: the corrupt table. You can use CHECK
InnoDB: TABLE to scan your table for corruption.
InnoDB: See also http://dev.mysql.com/doc/refman/5.1/en/forcing-innodb-recovery.html
로그인 후 복사

공식 forcing-innodb-recovery 페이지를 열고 innodb_force_recovery 매개변수를 지정하여 강제로 시작 및 복구할 수 있는지 확인하세요. /etc/my.cnf에 다음 콘텐츠를 추가합니다.

innodb_force_recovery=6
로그인 후 복사

다시 시작하는 데 성공했습니다. mysqldump를 통한 백업에는 문제가 없으며, 다른 호스트로 백업 데이터를 가져오는 것도 정상으로 확인 가능합니다.

이제 쉽습니다. mysql을 완전히 삭제하고 Percona 서버 5.7을 다시 설치한 후 데이터베이스를 구축하고 데이터를 복원하고 프로그램을 다시 연결하면 모든 것이 정상입니다.

위 내용은 mysql innodb 예외를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿