XAMPP - การปิด MySQL โดยไม่คาดคิด


132

เมื่อฉันเปิด XAMPP และคลิกปุ่มเริ่ม MySQL และทำให้ฉันมีข้อผิดพลาด ฉันเคยเริ่มมันมาก่อน แต่ตอนนี้มันใช้ไม่ได้แล้ว

12:19:12 น. [mysql] กำลังพยายามเริ่มแอป MySQL ...
12:19:12 น. [mysql] ตรวจพบการเปลี่ยนแปลงสถานะ: ทำงาน
12:19:13 น. [mysql] ตรวจพบการเปลี่ยนแปลงสถานะ: หยุด
12:19:13 ข้อผิดพลาด PM [mysql]: การปิด MySQL โดยไม่คาดคิด
12:19:13 น. [mysql] อาจเป็นเพราะพอร์ตที่ถูกบล็อกไม่มีการอ้างอิง
12:19:13 น. [mysql] สิทธิ์ที่ไม่เหมาะสมขัดข้องหรือปิดโดยวิธีอื่น
12:19:13 น. [mysql ] กดปุ่ม Logs เพื่อดูบันทึกข้อผิดพลาดและตรวจสอบ
12:19:13 PM [mysql] Windows Event Viewer สำหรับเบาะแสเพิ่มเติม
12:19:13 PM [mysql] หากต้องการความช่วยเหลือเพิ่มเติมให้คัดลอกและโพสต์
12:19: 13 น. [mysql] หน้าต่างบันทึกทั้งหมดในฟอรัม

นี่คือเนื้อหาของบันทึกข้อผิดพลาด:

2013-08-02 12:19:12 4536 [หมายเหตุ] ปลั๊กอิน 'FEDERATED' ถูกปิดใช้งาน
2013-08-02 12:19:12 f64 InnoDB: คำเตือน: การใช้ innodb_additional_mem_pool_size ถูกเลิกใช้แล้ว ตัวเลือกนี้อาจถูกลบออกในรุ่นต่อ ๆ ไปพร้อมกับอ็อพชัน innodb_use_sys_malloc และตัวจัดสรรหน่วยความจำภายในของ InnoDB
2013-08-02 12:19:12 4536 [หมายเหตุ] InnoDB: ฮีปหน่วยความจำ InnoDB ถูกปิดใช้งาน
2013-08-02 12:19:12 4536 [หมายเหตุ] InnoDB: Mutexes และ rw_locks ใช้ Windows interlocked functions
2013-08-02 12:19:12 4536 [หมายเหตุ] InnoDB: ตารางที่บีบอัดใช้ zlib 1.2.3
2013-08-02 12:19:12 4536 [หมายเหตุ] InnoDB: ไม่ใช้คำสั่ง CPU crc32
2013-08-02 12:19:12 4536 [หมายเหตุ] InnoDB: กำลังเริ่มต้นบัฟเฟอร์พูลขนาด = 16.0M
2013-08-02 12:19:12 4536 [หมายเหตุ] InnoDB: การกำหนดค่าเริ่มต้นของบัฟเฟอร์พูลเสร็จสมบูรณ์
2013-08-02 12:19:12 4536 [หมายเหตุ] InnoDB: รูปแบบไฟล์ที่รองรับสูงสุดคือ Barracuda
2013-08-02 12:19:12 4536 [หมายเหตุ] InnoDB: หมายเลขลำดับการบันทึก 0 และ 0 ในไฟล์ ibdata ไม่ตรงกับหมายเลขลำดับล็อก 1616798 ใน ib_logfiles!
2013-08-02 12:19:12 4536 [หมายเหตุ] InnoDB: ฐานข้อมูลไม่ได้ปิดตามปกติ!
2013-08-02 12:19:12 4536 [หมายเหตุ] InnoDB: กำลังเริ่มการกู้คืนข้อขัดข้อง
2013-08-02 12:19:12 4536 [หมายเหตุ] InnoDB: กำลังอ่านข้อมูลพื้นที่ตารางจากไฟล์. ibd ...

ข้อความแสดงข้อผิดพลาดที่สำคัญที่สุดอยู่ที่นี่:

2013-08-02 12:19:12 4536 [ERROR] InnoDB:
พยายามเปิดพื้นที่ตารางที่เปิดไว้ก่อนหน้านี้
ตารางก่อนหน้าMySQL / innodb_table_statsใช้รหัสพื้นที่: 1 ที่ filepath: . \ MySQL \ innodb_table_stats.ibd
ไม่สามารถเปิดตารางxat / การชำระเงินที่ใช้รหัสพื้นที่: 1 ที่ filepath:. \ xat \ payments.ibd

ส่วนที่เหลือของบันทึก:

InnoDB: ข้อผิดพลาด: ไม่สามารถเปิดไฟล์ตารางตารางเดียวได้ \ xat \ payments.ibd
InnoDB: เราไม่ดำเนินการกู้คืนข้อขัดข้องต่อเนื่องจากตารางอาจกลายเป็น
InnoDB: เสียหายหากเราไม่สามารถใช้บันทึกบันทึกในบันทึก InnoDB กับมันได้ .
InnoDB: เพื่อแก้ไขปัญหาและเริ่มต้น mysqld:
InnoDB: 1) หากมีปัญหาการอนุญาตในไฟล์และ mysqld ไม่สามารถ
InnoDB: เปิดไฟล์คุณควรแก้ไขการอนุญาต
InnoDB: 2) หากไม่จำเป็นต้องใช้ตารางหรือคุณสามารถกู้คืนได้จากข้อมูลสำรอง
InnoDB: จากนั้นคุณสามารถลบไฟล์. ibd ออกและ InnoDB จะทำการ
กู้คืน InnoDB: crash recovery และเพิกเฉยต่อตารางนั้น
InnoDB: 3) หากระบบไฟล์หรือดิสก์เสียและคุณไม่สามารถลบออกได้
InnoDB: ไฟล์. ibd คุณสามารถตั้งค่า innodb_force_recovery> 0 ใน my.cnf
InnoDB: และบังคับให้ InnoDB ดำเนินการกู้คืนข้อขัดข้องที่นี่

อะไรคือสาเหตุของข้อผิดพลาดเหล่านี้และฉันจะแก้ไขได้อย่างไร

คำตอบ:


177

สิ่งสำคัญการลบไฟล์นี้อาจทำให้ข้อมูล MySQL ที่มีอยู่ใช้ไม่ได้ ใช้ด้วยความระมัดระวัง

สวัสดีฉันเพิ่งทำสิ่งนี้และได้ผล:

  1. ออกจากเซิร์ฟเวอร์ Xampp
  2. ไปที่C:\xampp\mysql\dataไดเรกทอรีของคุณ
  3. ลบibdata1ไฟล์
  4. รีสตาร์ทเซิร์ฟเวอร์ xampp

มันควรจะทำงาน


26
วิธีนี้ใช้ได้ผลและน่าจะถูกทำเครื่องหมายว่าเป็นคำตอบที่ถูกต้อง อย่างไรก็ตามเปลี่ยนชื่อไฟล์เป็น ibdata1.bak แทนที่จะลบทิ้ง เพียงเพื่อประหยัด
Lorenz Lo Sauer

23
แน่นอนว่าสิ่งนี้จะทำลายข้อมูลทั้งหมดที่เก็บไว้ในไฟล์นั้น (ตาราง InnoDB ทั้งหมดที่สร้างขึ้นก่อนตั้งค่าinnodb_file_per_tableเป็นเปิดใช้งาน) วิธีการที่แนะนำในข้อความบันทึกดูเหมือนจะด้อยค่าสำหรับฉัน
Tgr

17
ฉันต้องลบib_logfile0และib_logfile1เพื่อให้มันใช้งานได้
Allan Macmillan

12
อุ๊ย! เป่าไปibdata1เทียบเท่ากับการสูญเสียข้อมูลทั้งหมดของคุณ (หรืออย่างน้อยทุกคนที่อยู่ENGINE=Innodb!
ริกเจมส์

19
สิ่งที่ประมาทที่สุดที่อธิบายไม่ได้ที่คุณสามารถทำได้
user10089632

329

หยุด! กรุณาอย่าลบibdata1ไฟล์!

การลบไฟล์นี้ก็เหมือนกับการเล่นรูเล็ตรัสเซียกับฐานข้อมูลของคุณมันสามารถใช้งานได้และสร้างใหม่ทุกอย่าง แต่ก็อาจทำให้ทุกฐานข้อมูลที่คุณมีใช้ไม่ได้ ก่อนอื่นให้ลองใช้โฟลเดอร์สำรอง MySQLซึ่งมาพร้อมกับ XAMPP ทำสิ่งต่อไป:

  1. เปลี่ยนชื่อโฟลเดอร์mysql/dataเป็นmysql/data_old(คุณสามารถใช้ชื่อใดก็ได้)
  2. สร้างโฟลเดอร์ใหม่ mysql/data
  3. คัดลอกเนื้อหาที่อยู่ในโฟลเดอร์mysql/backupใหม่mysql/data
  4. คัดลอกโฟลเดอร์ทั้งหมดของฐานข้อมูลที่อยู่ในmysql/data_oldการmysql/data (ข้ามmysql, performance_schemaและphpmyadminโฟลเดอร์จากdata_old)
  5. สุดท้ายคัดลอกibdata1ไฟล์จากmysql/data_oldและแทนที่ภายในmysql/dataโฟลเดอร์
  6. เริ่ม MySQL จากแผงควบคุม XAMPP

และ voila!


28
นี่คือคำตอบที่ดีที่สุดไม่ขอให้คุณลบไฟล์หรือโฟลเดอร์ใด ๆ และที่สำคัญมันใช้งานได้
gegobyte

23
นี่คือคำตอบที่ดีที่สุด
Kevin E. Ogbonna

8
ฉันใช้คำตอบนี้หลายครั้งจนเขียนสคริปต์ PowerShell เพื่อทำให้กระบวนการทำงานอัตโนมัติ: gist.github.com/josemmo/24e35f2b4984a4370ce2c164f5956437
josemmo

8
นี่ควรเป็นคำตอบอันดับต้น ๆ
zero8

4
ใช่นี่คือคำตอบที่ดีที่สุด ฉันไม่ดีฉันไม่ได้ลองก่อน คำตอบที่ยอดเยี่ยม คุณบันทึกข้อมูลฐานข้อมูลของฉันและยุ่งยากมากมาย หมวกคุณผู้ชาย!
Nilesh

43
  1. ไปที่mysql / data /
  2. ลบไฟล์แบบสุ่มทั้งหมด (ยกเว้นโฟลเดอร์ฐานข้อมูลจริง)
  3. เริ่มต้นใหม่ApacheและMySQL

มันควรจะแก้ไขได้


10
มันลบข้อมูลทั้งหมดของฉัน มีข้อมูลมากมาย
พารา

11
ฉันยืนยันว่าการลบไฟล์จะทำให้ DB ทั้งหมดไม่สามารถใช้งานได้ ไฟล์ตารางอยู่ที่นั่น แต่ไม่สามารถแสดงได้
Adrian P.

29

หากคำตอบที่กล่าวถึงข้างต้นไม่ได้ผลคุณสามารถลองลบไฟล์ทั้งหมดในข้อมูลยกเว้นโฟลเดอร์

ไปที่: C: \ xampp \ mysql \ data

ใส่คำอธิบายภาพที่นี่

หลังจากนั้น: ไปที่: C: \ xampp \ mysql \ bin

จากนั้นเปิดด้วย notepad my.ini หน้าตาเป็นแบบนี้

ใส่คำอธิบายภาพที่นี่

จากนั้นลบหรือใส่ความคิดเห็นที่พอร์ต 3306 และเปลี่ยนเป็น 8111 จากนั้นเรียกใช้ xamp กับผู้ดูแลระบบและทำงานได้ดี


รักคุณ @Matthew Magante. คุณได้แก้ไขปัญหาของฉันที่ฉันเผชิญมาตลอดหนึ่งปีที่ผ่านมา ขอบคุณมาก.
Kashif Iftikhar

1
ตอนนี้ฉันไม่ได้รับข้อผิดพลาดนั้นใน xampp แต่ยังคง phpmyadmin ไม่ทำงานใน g
Sarvesh Tiwari

ขอบคุณ @fabrizio valencia fix ทำได้ดี แต่หลังจากนั้นสองหรือสามครั้งมันก็ไม่ทำงานอีกต่อไปและสิ่งนี้ได้รับการแก้ไขเป็นการแก้ไขครั้งที่สอง
Fer Toasted

16

เมื่อคุณไม่ได้ใช้ XAMPP ในฐานะผู้ดูแลระบบการปิด MySQL มักทำให้เกิดความเสียหายซึ่งหมายความว่าคุณต้องซ่อมแซมหรือลบตารางของคุณ เพื่อหลีกเลี่ยงปัญหานี้คุณต้องเรียกใช้ XAMPP ในฐานะผู้ดูแลระบบหรือใช้วิธีพร้อมรับคำสั่งที่เหมาะสมสำหรับการปิด MySQL

คุณสามารถลบได้ibdata1ตามที่ Kratos แนะนำ แต่อาจทำให้ฐานข้อมูลเสียหายเนื่องจากฐานข้อมูลอื่น ๆ ของคุณยังอยู่ใน/mysql/data/โฟลเดอร์ ในกรณีของฉันข้อมูลที่เหลือนี้ทำให้ฉันติดตั้ง WordPress ไม่สำเร็จ

วิธีที่สะอาดกว่าในการยกเลิกความเสียหายคือการเปลี่ยนกลับทั้ง/mysql/data/โฟลเดอร์ ของ Windows ได้สร้างในโฟลเดอร์เวอร์ชัน - คลิกขวาบนและเลือก/mysql/data/ Restore previous versionsจากนั้นคุณสามารถลบเนื้อหาปัจจุบันของโฟลเดอร์และแทนที่ด้วยเนื้อหาของเวอร์ชันเก่า

ภาคผนวก: เพื่อให้แน่ใจว่าคุณไม่ลืมที่จะเรียกใช้ XAMPP เป็นผู้ดูแลระบบคุณสามารถคลิกขวาทางลัด XAMPP ไปPropertiesแล้วและในที่สุดก็ติ๊กAdvancedRun as administrator


1
ควรยอมรับว่าเป็นคำตอบที่ถูกต้อง หากคุณลบ ibdata1 จะมีตารางที่ไม่มีผู้ดูแลมากมาย
ฌอน

ขอบคุณคุณแก้ไขปัญหาของฉันหลังจากลองทำสิ่งต่างๆมากมาย
user3089840

ยังแก้ไขปัญหาให้ฉันด้วย
Gaz Smith

คำอธิบายที่ดี: D ขอบคุณ
logbasex

ตัวเลือก 'คืนค่าเวอร์ชันก่อนหน้า' จะใช้งานได้ก็ต่อเมื่อคุณสร้าง Restore Points ใน Windows เป็นประจำ :(
nockieboy

15

Xampp MySQL ของฉันทำงานได้ดังต่อไปนี้:

01.Go to mysql/data/ directory
02. delete the ibdata1 & ib_logfile*(ib_logfile0,ib_logfile1,ib_logfile101) file
03. restart xampp server

นี่คือวิธีที่มีประสิทธิภาพที่สุดสำหรับฉัน !!
Youssef Boudaya

14

เพิ่มบรรทัดต่อไปนี้ด้านล่าง[mysqld]ส่วนในไฟล์ config mysql (my.ini) และรีสตาร์ทเว็บเซิร์ฟเวอร์ apache และบริการ mysql ในภายหลัง

[mysqld]
innodb_force_recovery = 4

7
อ่านเกี่ยวกับสิ่งที่คุณกำลังทำก่อนที่จะทำ: dev.mysql.com/doc/refman/5.0/th/forcing-innodb-recovery.html
marcovtwout

ขอบคุณมากจริงๆช่วยฉันได้มาก
Lohn Claidon

5
ควรเริ่มต้นด้วยค่า 1 และเพิ่มขึ้นทุกครั้งที่ไม่ได้ผล ค่า 1-3 ถือว่าประหยัด 4-6 ข้อมูลเสียหายได้!
CoR

สิ่งนี้ช่วยฉันได้ ตามที่ระบุไว้ให้ใช้ค่า 1-3 ก่อน 2 ทำงานกับฉัน ฉันต้องทิ้งฐานข้อมูลทั้งหมดของฉันรีเซ็ตข้อมูล mysql โดยใช้โฟลเดอร์สำรองจากนั้นนำเข้าที่ทิ้ง สิ่งนี้มีประโยชน์หากคุณต้องการเก็บข้อมูลของคุณ
claw68

13

ฉันได้รับข้อผิดพลาดแบบเดียวกันกับC:\xampp\mysql\data\mysql_error.logเมื่อพยายามเริ่ม mysql

2013-08-05 01:20:32 6780 [ERROR] InnoDB: Attempted to open a previously 
  opened tablespace. Previous tablespace mysql/slave_relay_log_info uses 
  space ID: 3 at filepath: .\mysql\slave_relay_log_info.ibd. Cannot open  
  tablespace test_database/test_table which uses space ID: 3 at filepath:  
  .\test_database\test_table.ibd

คุณจะต้องอ่านข้อผิดพลาดอย่างละเอียด นี่test_databaseเป็นการป้องกันไม่ให้ mysql เริ่มทำงาน

คุณสามารถกำจัดฐานข้อมูลที่กระทำผิดได้ขั้นตอนเหล่านี้แก้ไขปัญหา:

  1. ตรวจสอบให้แน่ใจว่า mysql และ xampp ปิดอย่างสมบูรณ์
  2. ไปที่ไดเร็กทอรีของคุณที่ติดตั้ง mysql ของฉันคือ: C:\xampp\mysql\data
  3. คุณควรเห็นโฟลเดอร์ที่มีชื่อของฐานข้อมูลที่คุณสร้างขึ้น test_databaseเหมือง
  4. สร้างโฟลเดอร์ใหม่ที่อื่นที่เรียกว่า C:\xampp\mysql\data\mysql\backuptablespace
  5. ลากและวาง (อย่าลบ) โฟลเดอร์ตารางฐานข้อมูลที่กระทำผิดไปยังไดเร็กทอรีสำรอง
  6. ลองเริ่ม mysql อีกครั้ง สำหรับฉันแล้วมันเริ่มต้นขึ้นใน 1 วินาทีตามที่คาดไว้

หากไม่ได้ผลให้นำไฟล์กลับไปที่จุดเริ่มต้นและคุณจะกลับมาที่จุดเริ่มต้น

หากคุณไม่ต้องการลบฐานข้อมูลและไม่มีข้อมูลสำรอง:

หากคุณไม่มีการสำรองข้อมูลตารางและ mysql จะไม่เริ่มทำงานเนื่องจากมีบางอย่างเสียหายคุณจะต้องใช้กระบวนการกำจัดเพื่อคาดเดาและตรวจสอบวิธีของคุณว่าคุณทำอะไรเสียหาย ทำตามขั้นตอนเหล่านี้:

  1. สร้างโคลนของทั้งหมดC:\xampp\และเก็บไว้ในที่ปลอดภัยเพื่อที่คุณจะได้กลับไปที่จุดเริ่มต้น
  2. ใช้วิธีการ "ค้นหาแบบไบนารี" เพื่อพยายามค้นหารายการที่เสียหายในฐานข้อมูล mysql อาจเป็นไฟล์หรือตารางหรือฐานข้อมูลหรือผู้ใช้หรืออะไรก็ได้
  3. ลบฐานข้อมูลทั้งหมดและดูว่าอนุญาตให้ mysql เริ่มทำงานหรือไม่ ถ้าเป็นเช่นนั้นให้ใส่ฐานข้อมูลกลับแล้วลองลบตารางบางส่วนออก ถ้าไม่เป็นเช่นนั้นให้ลองดึงอย่างอื่นออกมาจนกว่าจะเริ่ม
  4. ลองลบไฟล์เหล่านี้ออกจากC:\xampp\mysql\data\mysql: db.frm db.MRD db.MYI db.opt user.frm user.MYD user.MYI

  5. เมื่อคุณเริ่มต้น mysql ให้ลองใส่สิ่งต่างๆกลับไปจนกว่าคุณจะพบสิ่งหนึ่งที่คุณเพิ่มซึ่งทำให้ไม่สามารถเริ่มต้นได้ โบนัสอย่างหนึ่งคือคุณได้เรียนรู้ว่า mysql ทำงานอย่างไรภายใต้ประทุน

ตัวเลือกนิวเคลียร์:

บางสิ่งที่คุณทำให้เซิร์ฟเวอร์ mysql เสียหาย การถอนการติดตั้งและติดตั้ง XAMPP ใหม่ควรยกเลิกความเสียหาย


7

ฉันประสบปัญหานี้เช่นกันและนี่คือวิธีที่ฉันแก้ไข
1. ตรวจสอบให้แน่ใจว่า xampp ไม่อยู่ภายใต้ไดเรกทอรีย่อย ตัวอย่างเช่นควรเป็น C: \ xampp
2 คุณอาจต้องเรียกใช้ในฐานะผู้ดูแลระบบในการเรียกใช้แอปพลิเคชัน

หวังว่าจะได้ผล!


4

นี่คือสิ่งที่ฉันทำ ฉันรีสตาร์ทคอมพิวเตอร์ ต่อไปฉันเรียกใช้ services.msc ฉันหยุดบริการ MySQL จากนั้นเริ่มต้นใหม่ รีสตาร์ทเซิร์ฟเวอร์ Xampp


นี่ไม่ใช่คำตอบที่ถูกต้อง!
abhiarora

คำตอบที่ไม่ถูกต้อง
Soumyajit Dutta

4

ไม่มีวิธีแก้ปัญหาข้างต้นสำหรับฉัน จากนั้นฉันทำด้านล่าง:

ฉันลบไฟล์ทั้งหมดในไดเรกทอรี C: \ xampp \ mysql \ data \ ยกเว้นโฟลเดอร์ในไดเร็กทอรีนี้ มันทำงานได้ดีอย่างสมบูรณ์ แต่ฐานข้อมูลก่อนหน้าของฉันไม่ทำงานในขณะนี้ ดังนั้นทำข้างบนถ้าคุณไม่สนใจมันจะลบฐานข้อมูลก่อนหน้าทั้งหมดของคุณใน phpmyadmin


4

ในกรณีของฉันฉันทำตามขั้นตอนและได้ผล:

  1. ในแผงควบคุม Xampp คลิกที่ปุ่ม "บริการ" จากแถบเครื่องมือด้านขวา

  2. จากนั้นค้นหา "MySQL" จากรายการบริการ

  3. คลิกที่มันและจากด้านซ้ายของแผงคลิกที่ "หยุด"

  4. ย้อนกลับไปในแผงควบคุม Xampp แล้วคลิกที่เริ่ม


1
ขอบคุณไม่มีตัวเลือกอื่นใดที่ใช้ได้ผลสำหรับฉันตัวเลือกนี้ทำ ซึ้งใจมาก
user3808307

@ user3808307 ดีใจจังที่ช่วยได้ :)
Sobhan

4
  1. ย้ายxampp/mysql/backupไฟล์ไปที่xampp/mysql/data
  2. RUN XAMPPas Administrator(ตรวจสอบให้แน่ใจว่าติดตั้ง mysql แล้วคุณจะเห็นขีดสีเขียวหากติดตั้งไว้) รายการ

หวังว่าจะช่วยได้!


3

ฉันประสบปัญหาเดียวกันและไม่มีวิธีแก้ไขใด ๆ ที่ระบุไว้ข้างต้นช่วยฉันได้ ฉันไปที่ไฟล์คอนฟิกูเรชัน mysql (my.ini) และเปลี่ยนหมายเลขพอร์ตภายใต้ [mysqld] โดย mysql เริ่มต้นทำงานบนพอร์ต 3306

port= 3306

ฉันเปลี่ยนเป็น

port= 8111

จากนั้นเรียกใช้ในฐานะผู้ดูแลระบบในที่สุดสิ่งนี้ก็ได้ผลสำหรับฉัน


3

อย่าลบไฟล์นี้ ( ibdata1) เพราะข้อมูลทั้งหมดของคุณจะถูกลบ !!!
ฉันแนะนำสามวิธี:

A:
1- ออกจากXAMPP control panel.
1- เปลี่ยนชื่อโฟลเดอร์mysql/dataไปmysql/data_old(คุณสามารถใช้ชื่อใด ๆ )
2- สร้างโฟลเดอร์ใหม่mysql/data
3- คัดลอกเนื้อหาที่อยู่ในmysql/backupใหม่mysql/dataโฟลเดอร์
4- คัดลอกโฟลเดอร์ฐานข้อมูลของคุณทั้งหมดที่อยู่ในmysql/data_oldการmysql/data(ข้าม MySQL, performance_schema และ phpmyadmin โฟลเดอร์จาก data_old)
5- สุดท้ายคัดลอกibdata1ไฟล์จากmysql/data_oldและแทนที่ภายในmysql/data folder
6- รีสตาร์ทระบบของคุณ

B :
1- หยุดบริการ sql ทั้งหมด
2- ถัดไปเริ่มบริการ sql ทั้งหมดอีกครั้ง

ใส่คำอธิบายภาพที่นี่

C :
1- เปิดแผงควบคุม XAMPP
2- คลิกที่ปุ่ม Config หน้า mysql คลิก my.ini 3- เปลี่ยนพอร์ตไคลเอนต์และพอร์ตเซิร์ฟเวอร์

ใส่คำอธิบายภาพที่นี่



ใส่คำอธิบายภาพที่นี่


การเปลี่ยนพอร์ตได้ผลสำหรับฉันและไม่มีวิธีอื่นใดที่ใช้ได้ผล
Zobia Kanwal

2

พวกคุณต้องแน่ใจว่าคุณไม่ได้ติดตั้งเซิร์ฟเวอร์ MySql เนื่องจากฉันติดตั้งเซิร์ฟเวอร์ MySql ไว้ล่วงหน้าและเมื่อฉันเริ่ม mysql จากแผงควบคุม xampp มีข้อขัดแย้งของพอร์ตเกิดขึ้นและไม่ทำงานดังนั้นก่อนที่จะเริ่ม mysql จากแผงควบคุม xampp ตรวจสอบให้แน่ใจว่าไม่ได้ติดตั้งเซิร์ฟเวอร์ mysql ฉันใช้. net ดังนั้นฉันจึงติดตั้งเซิร์ฟเวอร์ mysql ในอดีต การถอนการติดตั้งช่วยแก้ปัญหาของฉัน ....


2

ฉันได้แก้ไขปัญหาโดยการสิ้นสุดงานสำหรับ mysqlid บนตัวจัดการงานใส่คำอธิบายภาพที่นี่


ขอบคุณมันช่วยฉัน จิตวิญญาณที่มีการลบ ib1 สร้างปัญหาใหม่ให้ฉันแก้ไข
Skotee


2

ฉันแก้ไขข้อผิดพลาด MySQL ที่คล้ายกันและฉันคิดว่าคำตอบนี้จะช่วยคุณแก้ไขข้อผิดพลาดฐานข้อมูล MySQL ประเภทเดียวกัน MySQL Error บนแผงควบคุม XAMPP

วิธีการแก้:

  • ไปที่ไดเร็กทอรี "data" ในฐานข้อมูล mysql
  • ฉันติดตั้ง XAMPP บนไดรฟ์ D: บนคอมพิวเตอร์ของฉันและตำแหน่งไดเร็กทอรี mysql“ data” ของคอมพิวเตอร์ของฉันคือ“ D: \ xampp \ mysql \ data \” คุณอาจมีตำแหน่งที่ตั้งอื่น

สำรองข้อมูลโฟลเดอร์ "data" ของ MySQL

  • ก่อนอื่นคุณควรสร้างข้อมูลสำรองของโฟลเดอร์ "data" โดยใช้ซอฟต์แวร์บีบอัดใด ๆ

  • ตั้งชื่อเช่น“ data_backup.zip” หรือประเภทการบีบอัดที่คุณต้องการ

  • ฉันใช้ซอฟต์แวร์บีบอัด winrar เพื่อบีบอัดและสำรองโฟลเดอร์ mysql“ data”

เปลี่ยนชื่อโฟลเดอร์ "data"

  • เปลี่ยนชื่อโฟลเดอร์ "data" เป็น "data-oldfiles" สิ่งนี้สำคัญมากในการเปลี่ยนชื่อไดเร็กทอรีข้อมูลเป็นชื่อไดเร็กทอรีใหม่

สร้างโฟลเดอร์ "data" ใหม่

  • สร้างโฟลเดอร์ใหม่และตั้งชื่อโฟลเดอร์ว่า "data"
  • ในการแก้ปัญหาเราจำเป็นต้องสร้างไดเร็กทอรี "data" ใหม่ในฐานข้อมูล mysql

คัดลอกเนื้อหาจากโฟลเดอร์ "สำรอง"

  • ไปที่โฟลเดอร์ "สำรองข้อมูล" และคัดลอกไฟล์ทั้งหมด
  • วางไฟล์จากโฟลเดอร์สำรองไปยังโฟลเดอร์ข้อมูล
  • ตอนนี้เริ่มฐานข้อมูล MySQL จาก XAMPP
  • ฐานข้อมูล MySQL ของคุณจะเริ่มทำงานอย่างถูกต้องโดยไม่แสดงข้อผิดพลาดใด ๆ

ถ่ายโอนฐานข้อมูลโครงการ MySQL ไฟล์ข้อมูลและไฟล์บันทึกทั้งหมด

  • หากคุณมีฐานข้อมูลจำนวนมากที่ใช้สำหรับโครงการต่างๆคุณจะต้องถ่ายโอนฐานข้อมูลทั้งหมดจากโฟลเดอร์ "data-oldfiles" ไปยังโฟลเดอร์ "data"

  • คัดลอกฐานข้อมูลทั้งหมดจากไฟล์ข้อมูลเก่าและวางลงในโฟลเดอร์ข้อมูล

  • ตอนนี้คุณต้องคัดลอกไฟล์ข้อมูล“ ibdata1” และไฟล์บันทึกทั้งหมด“ ib_logfile0, ib_logfile1” จากโฟลเดอร์ไฟล์ข้อมูลเก่าไปยังโฟลเดอร์ข้อมูล

  • หากคุณมี id_logiles จำนวนมากให้คัดลอกทั้งหมด

  • ตอนนี้เริ่ม MySQL จาก XAMPP

  • ไปที่ phpMyAdmin เพื่อตรวจสอบฐานข้อมูลทั้งหมดที่มีอยู่และใช้งานได้

  • ตอนนี้เริ่มโครงการเว็บไซต์ของคุณจาก localhost เพื่อตรวจสอบฐานข้อมูล MySQL

ปัญหาได้รับการแก้ไขแล้ว !!

MySQL Error แก้ไขบน XAMPP

  • ตอนนี้คุณจะเห็นว่าปัญหาได้รับการแก้ไขแล้วและข้อความแสดงข้อผิดพลาด“ ข้อผิดพลาด: การปิดระบบ MySQL โดยไม่คาดคิด” จะไม่แสดงอีก
  • หากคุณมีคำถามเกี่ยวกับปัญหานี้โปรดอย่าลังเลที่จะถามคำถามใด ๆ ในส่วนความคิดเห็น

คุณสามารถอ่านบทแนะนำรายละเอียดได้ที่ลิงค์ด้านล่าง: ข้อผิดพลาด: การปิด MySQL โดยไม่คาดคิด - แก้ไขใน 5 ขั้นตอนง่ายๆ

คุณยังสามารถดูวิดีโอแนะนำการแก้ปัญหา:

[แก้ไขแล้ว] ข้อผิดพลาด: MySQL ปิดโดยไม่คาดคิด


2

สิ่งที่ได้ผลสำหรับฉันคือ:

  1. ก่อนอื่นฉันเปิดLogsให้MySqlเข้าXAMPP panelใน
  2. ในตอนท้ายมันบอกว่าคุณกำลังเรียกใช้ mysqlid ในพอร์ตอื่น 3306
  3. ฉันเปิดtask manager(Ctrl+Shift+Esc)แล้วค้นหาmysqlidและEnd the task.

2

ขั้นตอนที่ 1: ปิดตัวควบคุม Xampp โดยสมบูรณ์
ขั้นตอนที่ 2: เปิด C: \ xampp \ mysql \ backup
ขั้นตอนที่ 3: คัดลอกไฟล์ทั้งหมดจากโฟลเดอร์สำรอง
ขั้นตอนที่ 4: เปิด C: \ xampp \ mysql \ data
ขั้นตอนที่ 5: วางไฟล์ทั้งหมดใน โฟลเดอร์ข้อมูล
ขั้นตอนที่ 6: เริ่มตัวควบคุม Xampp ใหม่


ขอบคุณผู้ชายทำงานเหมือนมีเสน่ห์สำหรับฉัน :)
Utpal - Ur Best Pal

1

Config-> Apache-> เปิด httpd.conf ค้นหา Listen หรือ 80 อัปเดตพอร์ต Listen เป็น 8081 บันทึกและรีสตาร์ทเซิร์ฟเวอร์ โอ้และปิด Skype ถ้าคุณมี


2
ใช่ที่แก้ไขแล้ว ฉันสาบานว่าฉันติดตั้งใหม่ก่อนที่จะโพสต์ แต่ฉันเดาว่าไม่ใช่ ขอบคุณ :)
Austin

1

ในกรณีของฉันที่ฉันซิงค์ข้อมูล mysql และ htdocs ไปยังดรอปบ็อกซ์ฉันแค่ต้องการลบไฟล์ที่ขัดแย้งในโฟลเดอร์ mysql / data และโฟลเดอร์ย่อย ไฟล์ที่ขัดแย้งสามารถระบุได้ด้วยชื่อดรอปบ็อกซ์จะแจ้งให้คุณทราบ มันได้แก้ปัญหาสำหรับฉัน


1

ตรวจสอบว่าเวลาของระบบถูกต้อง เหมืองถูกตั้งค่าเป็นปี 2040 อย่างไรก็ตามการแก้ไขวันที่ช่วยแก้ปัญหาได้


1

สำหรับฉันฉันออกจาก Skype ซึ่งครอบครองพอร์ต 80 แล้ว Apache ก็วิ่งบนพอร์ต 80 อย่างมีความสุขมากกว่าที่ฉันใช้ Skype และมันเลือกพอร์ตอื่นในครั้งนี้


1

หากคุณใช้ MariaDB คุณสามารถลองสิ่งนี้:

  1. ไปที่ mysql / data /
  2. เปลี่ยนชื่อaria_log_controlเป็นaria_log_control_old
  3. รีสตาร์ท "Mysql"

1

ฉันแสดงความคิดเห็นคำสั่งนี้ใน mysql / bin / my.ini

'innodb_additional_mem_pool_size=2M'

และมันแก้ปัญหาของฉัน กว่าคุณทุกๆวัน


ฉันไม่มีเส้นนั้นเลย
Vipul Hadiya

คุณใช้ windows หรือเปล่า xampp เวอร์ชันของคุณคืออะไร?
Boston Kenne

ใช่ชนะ 10 ด้วย XAMPP 3.2.4
Vipul Hadiya

คุณสามารถเข้าถึงไฟล์ mysql / bin / my.ini ของคุณได้หรือไม่
Boston Kenne

gist.github.com/susanBuck/52f8a8508d94834332b1d565fb3a0e00 ดูลิงค์นี้และตรวจสอบตำแหน่งไฟล์ของคุณว่าควรอยู่ในC: \ xampp \ mysql \ bin \ my.iniค้นหาบรรทัด innodb_additional_mem_pool_size และแสดงความคิดเห็น
Boston Kenne

1

ซึ่งหมายความว่าคุณมีฐานข้อมูล MySQL ที่ทำงานที่พอร์ต 3306 แล้ว

ในแผงควบคุม XAMPP ให้กดปุ่ม "Config" จากนั้นกด "my.ini" หลังจากนี้ Ctrl-F และค้นหา '3306' แทนที่ '3306' ที่คุณพบด้วยหมายเลขพอร์ตอื่นที่คุณเลือก (คุณสามารถเลือก 3307 หรือ 3308 - ฉันเลือก 2811 และใช้งานได้)

หลังจากที่คุณแทนที่ทุกตำแหน่งที่เขียน '3306' แล้วให้บันทึกไฟล์และกด 'Start' บนแผงควบคุมอีกครั้ง


1

ไปที่ตัวจัดการงานและค้นหา mysqld แล้วคลิกขวาแล้วเลือก END TASK และรีเฟรช XAMPP


1

สำหรับฉันปัญหาคือ:

ฉันเคย hibernateพีซีของฉันแทนที่จะปิดตัวลงเนื่องจากขนาดของโครงการ ฉันขี้เกียจพอที่จะเปิดโปรแกรมทั้งหมดขึ้นมาใหม่

ก่อนที่จะลองทำอย่างอื่นขอแนะนำให้คุณทำสิ่งง่ายๆดังต่อไปนี้ มิฉะนั้นคุณจะทำให้เซิร์ฟเวอร์ MySQL ของคุณสับสน

  1. เปิดตัวจัดการงานของคุณและสิ้นสุดกระบวนการ XAMPP
  2. เรียกใช้แอปพลิเคชัน XAMPP อีกครั้งในฐานะผู้ดูแลระบบ

หากไม่ได้ผล

  1. บันทึกโปรแกรมที่ไม่ได้บันทึกทั้งหมดและรีสตาร์ทพีซี
  2. เรียกใช้ XAMMP ในฐานะผู้ดูแลระบบ

ตรวจสอบ3306และตรวจสอบ5040พอร์ตด้วย จำเป็นต้องใช้พอร์ตทั้งสองนี้เพื่อเรียกใช้ MySQL ตามการตั้งค่าเริ่มต้น

ตรวจสอบคำตอบของ @Ryan Williams เพื่อค้นหาว่าเหตุใดจึงควรเรียกใช้ XAMPP ในฐานะผู้ดูแลระบบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.