Nach dem Neustart stellte ich fest, dass MySQL nicht erfolgreich gestartet werden konnte. Als ich mir das Fehlerprotokoll ansah, stellte ich fest, dass ein Problem mit innodb vorliegt, das dazu führte, dass MySQL nicht gestartet werden konnte.
$ mysql.server start Starting MySQL . ERROR! The server quit without updating PID file (/usr/local/var/mysql/fdipzonedeMacBook-Air.local.pid).22:08:37 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql2016-04-23 22:08:38 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).2016-04-23 22:08:38 0 [Note] /usr/local/Cellar/mysql/5.6.24/bin/mysqld (mysqld 5.6.24) starting as process 3604 ...2016-04-23 22:08:38 3604 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive2016-04-23 22:08:38 3604 [Note] Plugin 'FEDERATED' is disabled.2016-04-23 22:08:38 3604 [Note] InnoDB: Using atomics to ref count buffer pool pages2016-04-23 22:08:38 3604 [Note] InnoDB: The InnoDB memory heap is disabled2016-04-23 22:08:38 3604 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins2016-04-23 22:08:38 3604 [Note] InnoDB: Memory barrier is not used2016-04-23 22:08:38 3604 [Note] InnoDB: Compressed tables use zlib 1.2.32016-04-23 22:08:38 3604 [Note] InnoDB: Using CPU crc32 instructions2016-04-23 22:08:38 3604 [Note] InnoDB: Initializing buffer pool, size = 128.0M2016-04-23 22:08:38 3604 [Note] InnoDB: Completed initialization of buffer pool2016-04-23 22:08:38 3604 [Note] InnoDB: Highest supported file format is Barracuda.2016-04-23 22:08:38 3604 [Note] InnoDB: Log scan progressed past the checkpoint lsn 689299334402016-04-23 22:08:38 3604 [Note] InnoDB: Database was not shutdown normally!2016-04-23 22:08:38 3604 [Note] InnoDB: Starting crash recovery.2016-04-23 22:08:38 3604 [Note] InnoDB: Reading tablespace information from the .ibd files...2016-04-23 22:08:38 3604 [ERROR] InnoDB: checksum mismatch in tablespace ./test_user/user_recommend_code#P#pmax.ibd (table test_user/user_recommend_code#P#pmax)2016-04-23 22:08:38 3604 [Note] InnoDB: Page size:1024 Pages to analyze:642016-04-23 22:08:38 3604 [Note] InnoDB: Page size: 1024, Possible space_id count:02016-04-23 22:08:38 3604 [Note] InnoDB: Page size:2048 Pages to analyze:482016-04-23 22:08:38 3604 [Note] InnoDB: Page size: 2048, Possible space_id count:02016-04-23 22:08:38 3604 [Note] InnoDB: Page size:4096 Pages to analyze:242016-04-23 22:08:38 3604 [Note] InnoDB: Page size: 4096, Possible space_id count:02016-04-23 22:08:38 3604 [Note] InnoDB: Page size:8192 Pages to analyze:122016-04-23 22:08:38 3604 [Note] InnoDB: Page size: 8192, Possible space_id count:02016-04-23 22:08:38 3604 [Note] InnoDB: Page size:16384 Pages to analyze:62016-04-23 22:08:38 3604 [Note] InnoDB: VALID: space:2947354 page_no:3 page_size:163842016-04-23 22:08:38 3604 [Note] InnoDB: Page size: 16384, Possible space_id count:12016-04-23 22:08:38 3604 [Note] InnoDB: space_id:2947354, Number of pages matched: 1/1 (16384)2016-04-23 22:08:38 3604 [Note] InnoDB: Chosen space:29473542016-04-23 22:08:38 3604 [Note] InnoDB: Restoring page 0 of tablespace 29473542016-04-23 22:08:38 3604 [Warning] InnoDB: Doublewrite does not have page_no=0 of space: 29473542016-04-23 22:08:38 7fff79b9e300 InnoDB: Operating system error number 2 in a file operation. InnoDB: The error means the system cannot find the path specified. InnoDB: If you are installing InnoDB, remember that you must create InnoDB: directories yourself, InnoDB does not create them. InnoDB: Error: could not open single-table tablespace file ./test_user/user_recommend_code#P#pmax.ibdInnoDB: We do not continue the crash recovery, because the table may become InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it. InnoDB: To fix the problem and start mysqld: InnoDB: 1) If there is a permission problem in the file and mysqld cannot InnoDB: open the file, you should modify the permissions. InnoDB: 2) If the table is not needed, or you can restore it from a backup, InnoDB: then you can remove the .ibd file, and InnoDB will do a normal InnoDB: crash recovery and ignore that table. InnoDB: 3) If the file system or the disk is broken, and you cannot remove InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf InnoDB: and force InnoDB to continue crash recovery here.
Geben Sie das MySQL-Verzeichnis ein, im Allgemeinen Ja: /usr/local/var/mysql/
Ib_logfile löschen*
IBdata löschen*
Alle physischen Datenbankverzeichnisse löschen (wenn die Datenbank beispielsweise test_db ist, führen Sie sie aus rm -rf test_db)
MySQL neu starten
Datenbank neu erstellen oder Backup-Abdeckung verwenden
können Sie die innodb_force_recovery Parameter, damit mysqld den Wiederherstellungsschritt überspringt und mysqld startet, die Daten exportiert und die Datenbank neu erstellt.
innodb_force_recovery kann auf 1-6 eingestellt werden, die größere Zahl beinhaltet die Auswirkung aller vorherigen Zahlen
(SRV_FORCE_IGNORE_CORRUPT): Erkanntes ignorieren Korruptionsseite.
(SRV_FORCE_NO_BACKGROUND): Verhindert die Ausführung des Hauptthreads. Wenn der Hauptthread einen vollständigen Löschvorgang durchführen muss, führt dies zu einem Absturz.
(SRV_FORCE_NO_TRX_UNDO): Führen Sie keinen Transaktions-Rollback-Vorgang durch.
(SRV_FORCE_NO_IBUF_MERGE): Führen Sie den Zusammenführungsvorgang des Einfügepuffers nicht durch.
(SRV_FORCE_NO_UNDO_LOG_SCAN): Ohne Überprüfung des Redo-Logs behandelt die InnoDB-Speicher-Engine nicht festgeschriebene Transaktionen als festgeschrieben.
(SRV_FORCE_NO_LOG_REDO): Führen Sie keinen Rollforward-Vorgang durch.
Hinzufügen
innodb_force_recovery = 6
innodb_purge_thread = 0
Neustart in my.cnf (Windows ist my.ini) MySQL
kann derzeit nur Auswahl-, Erstellungs- und Löschvorgänge ausführen, aber keine Einfüge-, Aktualisierungs- und Löschvorgänge ausführen, um nach Abschluss einen logischen Export durchzuführen , es wird
innodb_force_recovery=0, innodb_purge_threads=1, dann wird die Datenbank neu erstellt und schließlich werden die exportierten Daten erneut importiert
Erklären Sie, wie PHP das angegebene Datum erhält
Detaillierte Erklärung, wie PHP eine eindeutige RequestID-Klasse generiert
So überprüfen Sie die Datenbanktabellenkapazität über MySQL
Das obige ist der detaillierte Inhalt vonErläuterung zur Lösung des Problems, dass MySQL Innodb nicht startet und nicht neu gestartet werden kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!