วิธีแก้ไขข้อผิดพลาด MySQL 2003: ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL บน 'localhost:3306'

เผยแพร่แล้ว: 2024-03-25

ข้อผิดพลาด MySQL 2003 ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL บน 'localhost:3306' (10061) หมายความว่าแอปพลิเคชันหรือเครื่องมือของคุณพยายามเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูล MySQL บน 'localhost' โดยใช้พอร์ตเริ่มต้น 3306 แต่ล้มเหลว นั่นคือ ข้อความแสดงข้อผิดพลาดบอกคุณเช่นกัน ก่อนที่จะพูดคุยถึงวิธีการแก้ไขข้อผิดพลาด MySQL 2003 (HY000) สิ่งสำคัญคือต้องเข้าใจคำศัพท์สำคัญบางคำ เหตุผลที่ทำให้เกิดปัญหา และวิธีหลีกเลี่ยงในอนาคต

 ข้อผิดพลาด 2003 (HY000): ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL บน 'localhost' (10061)

MySQL Error 2003 หมายถึงอะไร

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

MySQL Server คือซอฟต์แวร์เซิร์ฟเวอร์ฐานข้อมูลจาก MySQL ใช้สำหรับจัดเก็บ กู้คืน และจัดการข้อมูล

รหัสข้อผิดพลาด HY000 ใน MySQL เป็นตัวแสดงข้อผิดพลาดทั่วไปสำหรับปัญหาที่ไม่ได้ระบุ ซึ่งใช้เมื่อไม่ได้ใช้รหัสข้อผิดพลาดเฉพาะเจาะจงมากขึ้น

'localhost:3306' (10061) หมายถึงความพยายามที่ล้มเหลวในการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ที่ทำงานบน 'localhost' (เครื่องที่ทำการร้องขอ) โดยใช้พอร์ต 3306 โดยมีรหัสข้อผิดพลาด 10061 ระบุว่าเซิร์ฟเวอร์ไม่ได้รับฟังอย่างแข็งขัน พอร์ตที่ระบุ

หลังจากอธิบายข้อกำหนดแล้ว ก็ถึงเวลาดูสาเหตุที่ทำให้เกิดข้อผิดพลาดนี้

เหตุใด MySQL Error 2003 จึงเกิดขึ้น

มีสาเหตุที่เป็นไปได้หลายประการสำหรับปัญหานี้ มาทำลายสิ่งเหล่านั้นกันสักหน่อย

เซิร์ฟเวอร์ MySQL ไม่ทำงาน: พูดง่ายๆ ก็คือ ข้อผิดพลาดนี้อาจหมายความว่าเซิร์ฟเวอร์ MySQL ที่คุณพยายามเข้าถึงไม่ทำงาน

การบล็อกไฟร์วอลล์: หากไฟร์วอลล์ของคุณได้รับการกำหนดค่าให้บล็อกการเชื่อมต่อขาเข้าบนพอร์ต 3306 ความพยายามในการเชื่อมต่อของคุณจะล้มเหลว

การตั้งค่าการเชื่อมต่อไม่ถูกต้อง: อาจเกี่ยวกับการใช้พอร์ต ชื่อโฮสต์ หรือแม้แต่ที่อยู่ IP ในสตริงการเชื่อมต่อของคุณไม่ถูกต้อง

ปัญหาเครือข่าย: บางครั้งปัญหาอาจไม่ได้อยู่ที่ฝั่งของคุณหรืออยู่ที่ MySQL เอง แต่อยู่ที่เครือข่ายที่อยู่ระหว่างนั้นอาจมีตั้งแต่การขัดข้องของเครือข่ายทั่วไปไปจนถึงปัญหาการแก้ไข DNS ที่ซับซ้อนมากขึ้น

การทำความเข้าใจสาเหตุของข้อผิดพลาด MySQL 2003 เป็นก้าวแรกในการแก้ไขปัญหา หากไม่เห็นต้นตอของปัญหา เป็นเรื่องยากที่จะแก้ไขปัญหาใดๆ ไม่ว่าจะเป็นในสภาพแวดล้อมจริงหรือในท้องถิ่น

MySQL Error 2003 ปรากฏอย่างไร

ข้อผิดพลาด 2003 ใน MySQL อาจแสดงในรูปแบบต่างๆ ขึ้นอยู่กับการตั้งค่าเฉพาะของคุณและวิธีการที่คุณใช้ในการเชื่อมต่อ แม้ว่าข้อความแสดงข้อผิดพลาดอาจแตกต่างกัน แต่โดยทั่วไปสาเหตุและขั้นตอนในการแก้ไขจะยังคงเหมือนเดิม

ต่อไปนี้เป็นวิธีทั่วไปบางประการที่ข้อผิดพลาดนี้อาจปรากฏขึ้น:

ข้อผิดพลาด 2003: ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL บน '127.0.0.1:3306' : ข้อความนี้ชี้ไปที่ความพยายามในการเชื่อมต่อกับ MySQL โดยเฉพาะโดยใช้ที่อยู่ IP 127.0.0.1 ซึ่งเป็นที่อยู่ IP แบบย้อนกลับสำหรับ localhost บนค่าเริ่มต้น พอร์ต 3306 แสดงว่าพยายามเชื่อมต่อไม่สำเร็จ อาจเนื่องมาจากเซิร์ฟเวอร์ไม่ทำงานหรือไฟร์วอลล์บล็อกการเข้าถึง

ข้อผิดพลาด MySQL 2003

ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ภายในผ่านซ็อกเก็ต '/var/lib/mysql/mysql.sock': รูปแบบนี้เกิดขึ้นในสภาพแวดล้อม Unix และ Linux เป็นหลักบ่งชี้ว่าไคลเอนต์พยายามเชื่อมต่อผ่านไฟล์ซ็อกเก็ต Unix (ในกรณีนี้คือ /var/lib/mysql/mysql.sock) แต่ไม่มีอยู่ เซิร์ฟเวอร์ไม่ทำงาน หรือมีปัญหาสิทธิ์ในการป้องกัน เข้าถึง.

รหัสข้อผิดพลาด MySQL Workbench 2003: เมื่อใช้ MySQL Workbench ข้อผิดพลาดนี้จะแสดงด้วยรหัสเดียวกัน แต่มักจะมาพร้อมกับคำอธิบายที่เป็นมิตรต่อผู้ใช้มากกว่ายังคงหมายความว่ามีปัญหาในการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ซึ่งอาจเกิดจากสาเหตุใดๆ ที่กล่าวมาข้างต้น หรือปัญหาเฉพาะที่เกี่ยวข้องกับการกำหนดค่า MySQL Workbench

แต่ละข้อความมีคำใบ้ว่าข้อผิดพลาดเป็นผลมาจากอะไร ก่อนที่จะเลือกวิธีแก้ไขข้อผิดพลาด คุณสามารถอ่านข้อความอย่างละเอียดได้

จะแก้ไขข้อผิดพลาด MySQL 2003 ได้อย่างไร

การแก้ไขข้อผิดพลาด MySQL 2003 'localhost:3306' มีขั้นตอนไม่กี่ขั้นตอนเพื่อให้แน่ใจว่าเซิร์ฟเวอร์ MySQL ของคุณสามารถเข้าถึงได้และได้รับการกำหนดค่าสำหรับการเชื่อมต่ออย่างเหมาะสม ต่อไปนี้เป็นขั้นตอนที่คุณสามารถทำได้ในระบบปฏิบัติการที่แตกต่างกัน

1. ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ MySQL กำลังทำงานอยู่

ก่อนอื่น ตรวจสอบว่าเซิร์ฟเวอร์ MySQL ทำงานบนคอมพิวเตอร์ของคุณอยู่หรือไม่ หากเซิร์ฟเวอร์ไม่ทำงาน จะไม่สามารถพยายามเชื่อมต่อได้สำเร็จ

บนลินุกซ์

  1. ตรวจสอบสถานะของบริการ MySQL โดยการเรียกใช้ ` sudo systemctl status mysql ` ในเทอร์มินัล
  2. เริ่มบริการโดยใช้ ` sudo systemctl start mysql` sudo Linux คำวิเศษ

บนวินโดวส์

  1. เปิดแอปพลิเคชันบริการ (ค้นหาในเมนูเริ่ม)
  2. เลื่อนลงเพื่อค้นหา บริการ MySQL และตรวจสอบสถานะ
  3. หากไม่ได้ทำงานอยู่ ให้คลิกขวาแล้ว เลือก Start

2. ตรวจสอบการตั้งค่าไฟร์วอลล์

ดังที่เราได้กล่าวไว้ข้างต้น ไฟร์วอลล์สามารถป้องกันการพยายามเชื่อมต่อกับ MySQL ได้โดยการบล็อกพอร์ต 3306 ซึ่งเป็นพอร์ตเริ่มต้นที่ MySQL ใช้ หากต้องการตรวจสอบว่าข้อผิดพลาดมาจากไฟร์วอลล์หรือไม่ ให้ทำตามขั้นตอนต่อไปนี้

บนลินุกซ์

  1. ในการจัดการการตั้งค่าไฟร์วอลล์ให้ใช้ ` ufw ` (ไฟร์วอลล์ที่ไม่ซับซ้อน)
  2. หากต้องการอนุญาตการรับส่งข้อมูล MySQL ให้ใช้ ` sudo ufwallow 3306`

บนวินโดวส์

  1. เปิด ไฟร์วอลล์ Windows Defender
  2. ไปที่ การตั้ง ค่า ขั้นสูง
  3. ตรวจสอบ กฎขาเข้า สำหรับกฎใดๆ ที่บล็อกพอร์ต 3306
  4. ปรับให้เหมาะสม

3. ตรวจสอบการกำหนดค่าเซิร์ฟเวอร์ MySQL

ไฟล์การกำหนดค่า MySQL ( ` my.cnf` บน Linux, ` my.ini ` บน Windows) มีการตั้งค่าที่สำคัญสำหรับการเชื่อมต่อเครือข่าย ตรวจสอบให้แน่ใจว่าไฟล์ได้รับการตั้งค่าอย่างถูกต้อง:

- พอร์ตควรตั้งค่าเป็น 3306

- ` bind-address` ควรใส่เครื่องหมาย `#` ที่ต้นบรรทัดหรือตั้งค่าเป็น ` 127.0.0.1 ` เพื่อยอมรับการเชื่อมต่อจาก localhost หากคุณกำลังเชื่อมต่อจากระยะไกล อาจตั้งค่าเป็น ` 0.0.0.0 ` หรือที่อยู่ IP เฉพาะของเซิร์ฟเวอร์ของคุณ

คุณสามารถค้นหา ` my.cnf` โดยทั่วไปภายใต้ ` /etc/mysql/ ` บน Linux หรือ ` my.ini ` ใน ไดเร็กทอรีการติดตั้ง MySQL บน Windows

4. ตรวจสอบการกำหนดค่าเครือข่าย

ตรวจสอบให้แน่ใจว่าการตั้งค่าเครือข่ายของคุณไม่ก่อให้เกิดปัญหา ตรวจสอบว่า 'localhost' แก้ไขเป็น ` 127.0.0.1 ` :

บนลินุกซ์:

  1. เปิดเทอร์มินัล → พิมพ์ ` ping localhost` → กด Enter เพื่อ ping ไปยัง localhost
  2. คุณควรเห็นคำตอบที่ระบุที่อยู่ IP ที่ `localhost` กำลังแก้ไข ซึ่งควรเป็น ` 127.0.0.1 `
  3. หากการตอบสนองแสดง `127.0.0.1` แสดงว่า `localhost` ได้รับการแก้ไขอย่างถูกต้อง กด Ctrl + C เพื่อหยุดกระบวนการ ping

บนวินโดวส์:

  1. เปิด Command Prompt → พิมพ์ ` ping localhost` → กด Enter เพื่อ ping localhost
  2. ค้นหาที่อยู่ IP ในการตอบกลับ
  3. หากเอาต์พุตมี `127.0.0.1` แสดงว่า `localhost` ของคุณได้รับการตั้งค่าอย่างถูกต้อง
  4. ปิดหน้าต่างเพื่อออก

ตรวจสอบให้แน่ใจว่าไม่มีรายการในไฟล์โฮสต์ของคุณที่เปลี่ยนเส้นทาง ` localhost ` ไปยัง IP อื่น ไฟล์โฮสต์อยู่ที่ ` /etc/hosts ` บน Linux และ ` C:\Windows\System32\drivers\etc\hosts ` บน Windows

5. เชื่อมต่อโดยใช้ TCP/IP

เมื่อใช้เครื่องมือเช่น MySQL Workbench เพื่อเชื่อมต่อกับฐานข้อมูลของคุณ ตรวจสอบให้ แน่ใจ ว่าได้ตั้งค่าวิธีการเชื่อมต่อเป็น TCP/IPการเชื่อมต่อ TCP/IP มีความหลากหลายมากขึ้น โดยเฉพาะอย่างยิ่งหากมีปัญหาการกำหนดค่ากับไฟล์ซ็อกเก็ต

เปิด MySQL Workbench → การตั้งค่าการเชื่อมต่อการเข้าถึง → เลือกแท็บการเชื่อมต่อ → เลือกวิธีการเชื่อมต่อเป็น “มาตรฐาน (TCP/IP)” จากรายการ → ยืนยันการตั้งค่า

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

คลิกปุ่ม “ทดสอบการเชื่อมต่อ” เพื่อตรวจสอบว่า MySQL Workbench สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL โดยใช้ TCP/IP ได้สำเร็จ

บทสรุป

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

การทำความเข้าใจความซับซ้อนของ MySQL Error 2003 เป็นสิ่งสำคัญสำหรับการแก้ไขปัญหาที่มีประสิทธิภาพ ตั้งแต่รหัสข้อผิดพลาดเฉพาะ (HY000) ไปจนถึงผลจากการพยายามเชื่อมต่อกับ 'localhost' บนพอร์ต 3306 ทุกรายละเอียดจะให้ข้อมูลเชิงลึกเกี่ยวกับลักษณะของปัญหาที่เกิดขึ้น

เมื่ออ่านคู่มือนี้แล้ว คุณควรแก้ไขข้อผิดพลาด MySQL 2003 ได้แล้ว ขอแสดงความยินดีด้วย!