아래 편집기는 시작 직후 mysql에 대한 완벽한 솔루션을 제공합니다. (ibdata1 파일 손상으로 인해) 편집자가 꽤 좋다고 생각해서 지금 공유하고 참고하겠습니다.
Mysql에 있는 서버에 있습니다. 잠시 실행했는데 갑자기 아주 이상한 현상이 발생했습니다: 다시 시작한 후 복원할 수 없습니다! 정확한 상황은: MySQL을 시작하자마자 종료됩니다. 🎜>다음과 같이 mysql 오류 로그를 봅니다. >
160920 22:41:41 mysqld_safe Starting mysqld daemon with databases from /home/MysqlData/ 2016-09-20 22:41:41 0 [Note] /Data/app/mysql5.6.25/bin/mysqld (mysqld 5.6.25-log) starting as process 32372 ... 2016-09-20 22:41:42 32372 [Note] Plugin 'FEDERATED' is disabled. 2016-09-20 22:41:42 32372 [Warning] option 'innodb-write-io-threads': unsigned value 1000 adjusted to 64 2016-09-20 22:41:42 32372 [Warning] option 'innodb-read-io-threads': unsigned value 1000 adjusted to 64 2016-09-20 22:41:42 32372 [Note] InnoDB: Using atomics to ref count buffer pool pages 2016-09-20 22:41:42 32372 [Note] InnoDB: The InnoDB memory heap is disabled 2016-09-20 22:41:42 32372 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2016-09-20 22:41:42 32372 [Note] InnoDB: Memory barrier is not used 2016-09-20 22:41:42 32372 [Note] InnoDB: Compressed tables use zlib 1.2.3 2016-09-20 22:41:42 32372 [Note] InnoDB: Using CPU crc32 instructions 2016-09-20 22:41:42 32372 [Note] InnoDB: Initializing buffer pool, size = 1.0G 2016-09-20 22:41:42 32372 [Note] InnoDB: Completed initialization of buffer pool 2016-09-20 22:41:42 32372 [Note] InnoDB: Highest supported file format is Barracuda. 2016-09-20 22:41:42 32372 [Note] InnoDB: Log scan progressed past the checkpoint lsn 20293587957 2016-09-20 22:41:42 32372 [Note] InnoDB: Database was not shutdown normally! 2016-09-20 22:41:42 32372 [Note] InnoDB: Starting crash recovery. 2016-09-20 22:41:42 32372 [Note] InnoDB: Reading tablespace information from the .ibd files... 2016-09-20 22:41:42 32372 [Note] InnoDB: Restoring possible half-written data pages 2016-09-20 22:41:42 32372 [Note] InnoDB: from the doublewrite buffer...
InnoDB: 복구 중: 로그 시퀀스 번호 20293596130까지 스캔
2016-09-20 22:41:42 32372 [Note] InnoDB: Starting an apply batch of log rec ord s to the database... InnoDB: Progress in percent: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 InnoDB: Apply batch completed InnoDB: Last MySQL binlog file position 0 136254, file name mysql-bin.00 001 3 2016-09-20 22:41:43 32372 [Note] InnoDB: 128 rollback segment(s) are active. 2016-09-20 22:41:43 32372 [Note] InnoDB: Waiting for purge to start 2016-09-20 22:41:43 7f77a9edd700 InnoDB: Assertion failure in thread 140151928772352 in file trx0purge.cc line 699
InnoDB: 어설션 실패: purge_sys-> ;iter.trx_no <= purge_sys->rseg->last_trx_no
InnoDB: We intentionally generate a memory trap. InnoDB: Submit a detailed bug report to http://bugs.mysql.com. InnoDB: If you get repeated assertion failures or crashes, even InnoDB: immediately after the mysqld startup, there may be InnoDB: corruption in the InnoDB tablespace. Please refer to InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html InnoDB: about forcing recovery. 02:41:43 UTC - mysqld got signal 6 ; This could be because you hit a bug. It is also possible that this binary or one of the libraries it was linked against is corrupt, improperly built, or misconfigured. This error can also be caused by malfunctioning hardware. We will try our best to scrape up some info that will hopefully help diagnose the problem, but since we have already crashed, something is definitely wrong and this may fail.
로그를 분석한 결과 데이터베이스를 다시 시작할 수 없는 것으로 나타났습니다. ibdata1 파일이 손상되어 재시작 후 정상적으로 복원이 되지 않는다는 것입니다.
해결책:
복구 단계를 건너뛰고 my.cnf 파일을 수정한 후 my.cnf에 [mysqld]를 추가해야 합니다.
innodb_force_recovery = 6
innodb_purge_threads = 1
설명:
innodb_force_recovery를 1로 설정할 수 있습니다. -6, 큰 숫자에는 이전 숫자의 영향이 모두 포함됩니다.
특정 숫자에 해당하는 의미:
2----(SRVFORCENORECORRUPT): 메인 스레드가 전체 제거 작업을 수행해야 하는 경우 충돌이 발생합니다. ---(SRVFORCENOTRXUNDO): 트랜잭션 롤백 작업을 수행하지 않습니다. 4----(SRVFORCENOIBUFMERGE): 삽입 버퍼의 병합 작업을 수행하지 않습니다. Redo 로그를 보면 InnoDB 스토리지 엔진은 커밋되지 않은 트랜잭션을 다음과 같이 처리합니다. 헌신적인. 6------(SRVFORCENOLOG_REDO): 롤포워드 작업을 수행하지 않습니다.
mysql을 다시 시작하면 괜찮습니다~
그래도 시작할 수 없다면 데이터 디렉터리 datafile에서 ibdata1, ib_logfile* 등의 파일을 삭제해야 합니다.
시작 후 MySQL 데이터베이스를 내보내고 다시 복원하세요.
위 내용은 mysql 시작 후 바로 종료되는 문제(ibdata1 파일 손상으로 인해 발생) 해결 방법을 자세히 소개합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!