MariaDB ใช้ไม่ได้บน Windows 10? วิธีแก้เปิดไม่ขึ้น เชื่อมต่อไม่ได้ Port 3306 ชน และ Service หยุดทำงาน

 หากคุณใช้ MariaDB บน Windows 10 แล้วพบว่าเซิร์ฟเวอร์ฐานข้อมูลเปิดไม่ขึ้น เชื่อมต่อไม่ได้ ขึ้นข้อความ Can’t connect to MariaDB server, Access denied for user, พอร์ต 3306 ถูกใช้งาน หรือ MariaDB Service หยุดทำงาน ปัญหาเหล่านี้มักเกิดจากบริการฐานข้อมูล ไฟล์ตั้งค่า พอร์ตชนกัน รหัสผ่านไม่ถูกต้อง หรือไฟล์ฐานข้อมูลเสียหาย

บทความนี้รวบรวมวิธีแก้ MariaDB ใช้ไม่ได้บน Windows 10 แบบเป็นขั้นตอน เหมาะสำหรับผู้ที่ติดตั้ง MariaDB แยก หรือใช้งานร่วมกับ XAMPP, WampServer, Laragon, PHP และ phpMyAdmin พร้อมปรับรูปแบบให้อ่านง่ายสำหรับ Blogspot


MariaDB คืออะไร

MariaDB เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ที่พัฒนาต่อยอดมาจาก MySQL

สามารถนำไปใช้กับงาน เช่น

  • เว็บไซต์ PHP

  • WordPress

  • Laravel

  • ระบบสมาชิก

  • ร้านค้าออนไลน์

  • Web Application

  • REST API

  • ระบบจัดการข้อมูล

  • โปรแกรมภายในองค์กร

MariaDB ใช้คำสั่ง SQL และมีรูปแบบการเชื่อมต่อใกล้เคียงกับ MySQL แต่บางเวอร์ชันอาจมีฟีเจอร์และพฤติกรรมแตกต่างกัน


อาการที่พบบ่อย

  • MariaDB เปิดไม่ขึ้น

  • MariaDB Service ไม่ทำงาน

  • เชื่อมต่อฐานข้อมูลไม่ได้

  • พอร์ต 3306 ถูกใช้งาน

  • Access denied for user

  • phpMyAdmin เข้าไม่ได้

  • MariaDB Start แล้วหยุดทันที

  • เว็บไซต์เชื่อมต่อฐานข้อมูลไม่ได้

  • Import ฐานข้อมูลไม่สำเร็จ

  • Table เปิดไม่ได้

  • โปรแกรมแจ้ง Unknown database

  • MariaDB ทำงานช้าผิดปกติ


สาเหตุที่ทำให้ MariaDB มีปัญหา

สาเหตุที่พบบ่อย ได้แก่

  • MariaDB Service หยุดทำงาน

  • พอร์ต 3306 ถูก MySQL หรือโปรแกรมอื่นใช้

  • ไฟล์ my.ini ผิดพลาด

  • ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง

  • ติดตั้ง MySQL และ MariaDB พร้อมกัน

  • Data Directory เสียหาย

  • พื้นที่ว่างของไดรฟ์ไม่เพียงพอ

  • Firewall บล็อกการเชื่อมต่อ

  • สิทธิ์ของโฟลเดอร์ฐานข้อมูลไม่ถูกต้อง

  • เครื่องปิดหรือดับขณะกำลังเขียนข้อมูล

  • Antivirus กักกันไฟล์ของ MariaDB


วิธีแก้ MariaDB ใช้ไม่ได้บน Windows 10

① รีสตาร์ตคอมพิวเตอร์

รีสตาร์ต Windows ก่อนหนึ่งครั้ง

จากนั้นทดลองเปิด MariaDB ใหม่

วิธีนี้ช่วยแก้ปัญหา Service หรือพอร์ตค้างจากการปิดโปรแกรมไม่สมบูรณ์ได้ในบางกรณี


② ตรวจสอบ MariaDB Service

กด

Win + R

พิมพ์

services.msc

กด Enter

ค้นหาบริการชื่อใกล้เคียง เช่น

  • MariaDB

  • MariaDB Server

  • mariadb

  • MySQL

ตรวจสอบว่า Status เป็น

Running

หากหยุดทำงาน ให้คลิกขวาแล้วเลือก

Start


③ รีสตาร์ต MariaDB Service

หาก Service ทำงานอยู่แต่เชื่อมต่อไม่ได้

คลิกขวาที่ MariaDB Service

เลือก

Restart

จากนั้นทดลองเชื่อมต่อฐานข้อมูลใหม่


④ ตั้งค่า Startup Type เป็น Automatic

ดับเบิลคลิก MariaDB Service

ตั้งค่า

Startup type

เป็น

Automatic

เพื่อให้ MariaDB เริ่มทำงานพร้อม Windows


⑤ ตรวจสอบชื่อ Service ผ่าน Command Prompt

เปิด Command Prompt แบบผู้ดูแลระบบ

รันคำสั่ง

sc query type= service | findstr /I "MariaDB MySQL"

คำสั่งนี้ช่วยค้นหาชื่อ Service ที่เกี่ยวข้องกับ MariaDB และ MySQL ในเครื่อง


⑥ เริ่มหรือหยุด Service ผ่านคำสั่ง

หากชื่อ Service คือ MariaDB ให้ใช้

net start MariaDB

หากต้องการหยุด Service ใช้

net stop MariaDB

ควรเปลี่ยนชื่อให้ตรงกับ Service จริงในเครื่อง


⑦ ตรวจสอบพอร์ต 3306

MariaDB มักใช้พอร์ต

3306

เปิด Command Prompt แล้วรัน

netstat -ano | findstr :3306

หากพบ Process ใช้พอร์ตนี้อยู่ MariaDB อาจเปิดไม่ได้เพราะพอร์ตชนกัน


⑧ ตรวจสอบ Process ที่ใช้พอร์ต

นำหมายเลข PID ที่ได้จาก netstat ไปตรวจสอบใน Task Manager

ไปที่

Task Manager > Details

ค้นหา PID ดังกล่าว เพื่อดูว่าโปรแกรมใดใช้พอร์ต 3306


⑨ ปิด MySQL หรือ MariaDB ตัวที่ซ้ำกัน

หากติดตั้งหลายระบบพร้อมกัน เช่น

  • MySQL Server

  • MariaDB Server

  • XAMPP

  • WampServer

  • Laragon

อาจมีฐานข้อมูลหลายตัวพยายามใช้พอร์ตเดียวกัน

ควรเปิดใช้งานเพียงตัวเดียว หรือกำหนดพอร์ตของแต่ละตัวให้แตกต่างกัน


⑩ เปลี่ยนพอร์ต MariaDB

เปิดไฟล์

my.ini

ค้นหา

port=3306

เปลี่ยนเป็น

port=3307

จากนั้นรีสตาร์ต MariaDB

โปรแกรมที่เชื่อมต่อฐานข้อมูลต้องเปลี่ยนพอร์ตให้ตรงกันด้วย


⑪ ตรวจสอบไฟล์ my.ini

ตรวจสอบค่าหลัก เช่น

[mysqld]
port=3306
basedir="C:/Program Files/MariaDB/"
datadir="C:/Program Files/MariaDB/data/"

ตรวจสอบว่า

  • Path มีอยู่จริง

  • ใช้เครื่องหมาย Slash ถูกต้อง

  • ไม่มีค่าซ้ำกัน

  • ไม่มีบรรทัดผิดรูปแบบ

ควรสำรองไฟล์ก่อนแก้ไขทุกครั้ง


⑫ ตรวจสอบ Data Directory

โฟลเดอร์ Data เป็นตำแหน่งเก็บฐานข้อมูลทั้งหมด

ตรวจสอบว่า

  • โฟลเดอร์ยังอยู่

  • ไฟล์ไม่ถูกลบ

  • มีพื้นที่ว่างเพียงพอ

  • บัญชี Service มีสิทธิ์อ่านและเขียน

  • Antivirus ไม่ได้กักกันไฟล์

ไม่ควรลบไฟล์ภายใน Data Directory โดยไม่มีข้อมูลสำรอง


⑬ ตรวจสอบ MariaDB Error Log

หาก MariaDB Start แล้วหยุดทันที ให้ตรวจสอบ Error Log

ไฟล์อาจอยู่ใน Data Directory และมีชื่อ เช่น

hostname.err

หรือกำหนดตำแหน่งไว้ใน my.ini

Error Log มักระบุสาเหตุ เช่น

  • พอร์ตถูกใช้งาน

  • Permission ไม่ถูกต้อง

  • InnoDB เสียหาย

  • Config ผิด

  • ไดรฟ์เต็ม

  • ไฟล์ Log ไม่ตรงกัน


⑭ ตรวจสอบพื้นที่ว่างของไดรฟ์

MariaDB ต้องใช้พื้นที่สำหรับ

  • Database

  • Transaction Log

  • Temporary Table

  • Binary Log

  • Backup

  • Cache

หากไดรฟ์ใกล้เต็ม MariaDB อาจหยุดทำงานหรือเขียนข้อมูลไม่ได้


⑮ ทดสอบเชื่อมต่อผ่าน Command Line

เปิด Command Prompt

รัน

mariadb -u root -p

บางเวอร์ชันอาจใช้คำสั่ง

mysql -u root -p

จากนั้นใส่รหัสผ่าน

หากเชื่อมต่อได้ แสดงว่า MariaDB Server ทำงาน แต่โปรแกรมที่ใช้งานอาจตั้งค่าผิด


⑯ แก้ปัญหา mariadb is not recognized

หากเรียกคำสั่ง mariadb ไม่ได้ ให้เพิ่มโฟลเดอร์ bin ของ MariaDB ลงใน PATH

ตัวอย่าง

C:\Program Files\MariaDB\bin

หลังเพิ่ม PATH ให้ปิดและเปิด Command Prompt ใหม่


⑰ ตรวจสอบตำแหน่งของคำสั่ง

รัน

where mariadb

และ

where mysql

หากพบหลายตำแหน่ง อาจมี Client หลายเวอร์ชันในเครื่อง

ควรจัดลำดับ PATH ให้เวอร์ชันที่ต้องการอยู่ด้านบน


⑱ แก้ Access denied for user

ข้อความ

Access denied for user

มักเกิดจาก

  • Username ผิด

  • Password ผิด

  • Host ไม่ตรง

  • ผู้ใช้ไม่มีสิทธิ์

  • Authentication Method ไม่ตรงกับ Client

ควรตรวจสอบชื่อผู้ใช้ รหัสผ่าน และ Host ก่อนแก้ไขสิทธิ์


⑲ ตรวจสอบ Host ของผู้ใช้

บัญชีเหล่านี้อาจมีสิทธิ์ต่างกัน

root@localhost
root@127.0.0.1
user@%

ควรตรวจสอบว่าโปรแกรมกำลังเชื่อมต่อด้วย Host ใด และมีบัญชีตรงกับ Host ดังกล่าวหรือไม่


⑳ ตรวจสอบไฟล์ตั้งค่าของเว็บไซต์

หากเว็บไซต์เชื่อมต่อ MariaDB ไม่ได้ ให้ตรวจสอบไฟล์ เช่น

  • .env

  • wp-config.php

  • config.php

  • database.php

ตัวอย่างค่า

DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_database
DB_USERNAME=root
DB_PASSWORD=

ค่าทั้งหมดต้องตรงกับ MariaDB ที่กำลังทำงาน


㉑ ตรวจสอบ phpMyAdmin

หาก phpMyAdmin เปิดได้แต่เข้าสู่ระบบไม่ได้ ให้ตรวจสอบ

config.inc.php

รวมถึงค่า

  • Host

  • Port

  • Username

  • Password

  • Authentication Type

หาก MariaDB เปลี่ยนพอร์ต phpMyAdmin ต้องเปลี่ยนตามด้วย


㉒ ทดลองใช้ 127.0.0.1 แทน localhost

ในบางระบบ localhost อาจใช้วิธีเชื่อมต่อแตกต่างจาก 127.0.0.1

ทดลองตั้ง Host เป็น

127.0.0.1

แล้วเชื่อมต่อใหม่


㉓ ตรวจสอบ Bind Address

ใน my.ini อาจมีค่า

bind-address=127.0.0.1

ค่าดังกล่าวอนุญาตให้เชื่อมต่อจากเครื่องเดียวกันเท่านั้น

หากต้องการเชื่อมต่อจากเครื่องอื่น ต้องกำหนดค่าตามโครงสร้างเครือข่ายและจำกัดสิทธิ์อย่างรัดกุม


㉔ ตรวจสอบ Windows Firewall

หากเชื่อมต่อจากเครื่องอื่นไม่ได้ ให้ตรวจสอบ Windows Firewall

อนุญาตเฉพาะพอร์ตและเครือข่ายที่จำเป็น

ไม่ควรเปิดพอร์ตฐานข้อมูลสู่เครือข่ายสาธารณะโดยไม่มีระบบป้องกัน


㉕ ตรวจสอบ Antivirus

Antivirus อาจบล็อกไฟล์ เช่น

  • mariadbd.exe

  • mysqld.exe

  • Client Tools

  • Data Files

  • Log Files

ตรวจสอบประวัติการกักกัน และอนุญาตเฉพาะไฟล์ที่ยืนยันว่าเป็นไฟล์ของ MariaDB จริง


㉖ ตรวจสอบ Permission ของโฟลเดอร์

บัญชี Windows ที่ MariaDB Service ใช้งานต้องมีสิทธิ์อ่านและเขียนในโฟลเดอร์

  • Data

  • Log

  • Temp

  • Backup

หากย้าย Data Directory ไปยังไดรฟ์อื่น ควรกำหนด Permission ใหม่


㉗ ตรวจสอบไฟล์ InnoDB

หาก Error Log แจ้งปัญหา InnoDB ควรหยุด MariaDB และสำรอง Data Directory ก่อนแก้ไข

ไฟล์สำคัญอาจประกอบด้วย

ibdata1
ib_logfile0
ib_logfile1
undo files

ไม่ควรลบไฟล์เหล่านี้ทันที เพราะอาจทำให้ฐานข้อมูลเสียหายถาวร


㉘ ตรวจสอบ Table ที่เสียหาย

สามารถตรวจสอบ Table ด้วยคำสั่ง

CHECK TABLE ชื่อตาราง;

Table บางประเภทอาจรองรับคำสั่ง

REPAIR TABLE ชื่อตาราง;

แต่ไม่ใช่ทุก Storage Engine ที่สามารถ Repair ด้วยคำสั่งนี้ได้

ควรสำรองฐานข้อมูลก่อนดำเนินการ


㉙ ตรวจสอบฐานข้อมูลด้วย mariadb-check

ตัวอย่างคำสั่ง

mariadb-check -u root -p --all-databases

บางระบบอาจใช้

mysqlcheck -u root -p --all-databases

ควรทำในช่วงที่ระบบไม่มีการใช้งานหนัก และมี Backup พร้อมใช้งาน


㉚ Import ฐานข้อมูลผ่าน Command Line

ตัวอย่าง

mariadb -u root -p ชื่อฐานข้อมูล < backup.sql

หาก Client ใช้ชื่อ mysql ให้ใช้

mysql -u root -p ชื่อฐานข้อมูล < backup.sql

ควรสร้างฐานข้อมูลปลายทางก่อนเริ่ม Import


㉛ Export ฐานข้อมูลด้วย mariadb-dump

ตัวอย่าง

mariadb-dump -u root -p ชื่อฐานข้อมูล > backup.sql

บางเวอร์ชันอาจใช้

mysqldump -u root -p ชื่อฐานข้อมูล > backup.sql

หลัง Export ควรตรวจสอบว่าไฟล์มีขนาดสมเหตุสมผลและสามารถเปิดอ่านได้


㉜ แก้ Import ไฟล์ใหญ่ไม่ผ่าน

ตรวจสอบค่าใน my.ini เช่น

max_allowed_packet=64M

อาจต้องปรับเพิ่มตามขนาดข้อมูล

หลังแก้ไขต้องรีสตาร์ต MariaDB

ไม่ควรเพิ่มค่าสูงเกินความจำเป็นโดยไม่วิเคราะห์ Error ก่อน


㉝ ตรวจสอบ Character Set

หากภาษาไทยแสดงผิด ควรใช้ Character Set ที่รองรับ Unicode เช่น

utf8mb4

ตรวจสอบทั้ง

  • Database

  • Table

  • Column

  • Client Connection

  • ไฟล์ SQL

เพื่อให้การเข้ารหัสตรงกัน


㉞ ตรวจสอบ SQL Mode

ตรวจสอบด้วย

SELECT @@sql_mode;

โปรเจกต์เก่าอาจมี Query ที่ไม่รองรับ SQL Mode แบบเข้มงวด

ควรแก้ Query และโครงสร้างข้อมูลให้ถูกต้องก่อนปิดโหมดตรวจสอบ


㉟ ตรวจสอบจำนวน Connection

หากขึ้น

Too many connections

ตรวจสอบค่า

SHOW VARIABLES LIKE 'max_connections';

และตรวจสอบ Process ด้วย

SHOW PROCESSLIST;

ควรแก้แอปพลิเคชันที่เปิด Connection ค้างก่อนเพิ่ม Limit


㊱ ตรวจสอบ Query ที่ทำงานช้า

หาก MariaDB ทำงานช้า ให้ตรวจสอบ

  • Index

  • Query

  • Table Size

  • Slow Query Log

  • RAM

  • Storage

  • Connection Pool

ควรวิเคราะห์ Query ก่อนเพิ่มทรัพยากรเครื่อง


㊲ ปิด MariaDB อย่างถูกต้อง

ควรหยุด MariaDB ผ่าน

  • Windows Services

  • XAMPP Control Panel

  • Laragon

  • WampServer

  • คำสั่ง net stop

หลีกเลี่ยงการปิดเครื่องขณะฐานข้อมูลกำลัง Import, Backup หรือเขียนข้อมูลจำนวนมาก


㊳ สำรองข้อมูลก่อนอัปเดต

ก่อนอัปเดต MariaDB ควรสำรอง

  • ฐานข้อมูลทั้งหมด

  • User และ Privilege

  • ไฟล์ my.ini

  • Data Directory

  • Application Config

  • Stored Procedure และ Trigger

ควรทดสอบการอัปเกรดในเครื่องพัฒนาก่อนระบบจริง


㊴ ติดตั้ง MariaDB ใหม่

หากไฟล์โปรแกรมเสียหายและซ่อมไม่ได้ อาจถอนและติดตั้งใหม่

ก่อนถอนต้องสำรอง

  • Database

  • SQL Dump

  • Data Directory

  • Config

  • User

  • Permission

ไม่ควรถอนโปรแกรมก่อนยืนยันว่า Backup สามารถใช้งานได้


㊵ อัปเดต Windows

ติดตั้ง Windows Update ที่จำเป็น

จากนั้นรีสตาร์ตเครื่องแล้วทดสอบ MariaDB ใหม่


㊶ ซ่อมไฟล์ระบบ Windows

เปิด Command Prompt แบบผู้ดูแลระบบ

รัน

sfc /scannow

จากนั้นรัน

DISM /Online /Cleanup-Image /RestoreHealth

เมื่อเสร็จแล้วให้รีสตาร์ต Windows


วิธีแก้ Error ที่พบบ่อยใน MariaDB

Can’t connect to MariaDB server

ตรวจสอบว่า Service ทำงานอยู่ Host และ Port ถูกต้อง และไม่มี Firewall บล็อกการเชื่อมต่อ


Access denied for user

ตรวจสอบ Username, Password, Host และ Privilege ของผู้ใช้


Port 3306 already in use

ตรวจสอบพอร์ตด้วย

netstat -ano | findstr :3306

จากนั้นหยุดโปรแกรมที่ใช้พอร์ต หรือเปลี่ยน MariaDB ไปใช้พอร์ตอื่น


MariaDB shutdown unexpectedly

ตรวจสอบ Error Log, พื้นที่ว่างของไดรฟ์, InnoDB, Permission และเหตุการณ์ก่อนเครื่องปิดครั้งล่าสุด


Unknown database

ชื่อฐานข้อมูลใน Config ไม่ตรงกับฐานข้อมูลจริง หรือฐานข้อมูลยังไม่ได้สร้าง


Table doesn’t exist

ตรวจสอบ Database ที่เลือก ชื่อ Table ตัวพิมพ์เล็ก-ใหญ่ และความสมบูรณ์ของไฟล์ Import


Too many connections

ตรวจสอบ Connection ที่เปิดค้างด้วย SHOW PROCESSLIST และแก้ระบบ Connection Pool ของแอปพลิเคชัน


Server has gone away

อาจเกิดจาก Timeout, Packet ใหญ่, Query ใช้เวลานาน หรือ MariaDB รีสตาร์ตระหว่างทำงาน


วิธีป้องกันปัญหา MariaDB

  • สำรองฐานข้อมูลเป็นประจำ

  • ตรวจสอบ Error Log เมื่อ Service หยุดทำงาน

  • ใช้ฐานข้อมูลเพียงหนึ่งตัวต่อหนึ่งพอร์ต

  • ไม่ลบไฟล์ใน Data Directory โดยตรง

  • เว้นพื้นที่ว่างของไดรฟ์ให้เพียงพอ

  • จำกัดการเปิดพอร์ตฐานข้อมูล

  • ใช้รหัสผ่านที่คาดเดายาก

  • ตรวจสอบ Query และ Index เป็นระยะ

  • ปิด MariaDB อย่างถูกวิธี

  • ทดสอบการอัปเดตก่อนใช้กับระบบจริง


คำถามที่พบบ่อย (FAQ)

MariaDB กับ MySQL ต่างกันอย่างไร

MariaDB พัฒนาต่อยอดจาก MySQL และยังรองรับคำสั่งจำนวนมากร่วมกัน แต่มีฟีเจอร์ Storage Engine และพฤติกรรมบางส่วนแตกต่างกัน จึงควรตรวจสอบความเข้ากันได้ก่อนย้ายระบบ

ใช้ MariaDB กับ WordPress ได้หรือไม่

โดยทั่วไปสามารถใช้งานได้ แต่ควรเลือกเวอร์ชันที่รองรับกับ WordPress, PHP และ Plugin ที่ใช้งาน

เปลี่ยนพอร์ต MariaDB ได้หรือไม่

เปลี่ยนได้ แต่ต้องแก้พอร์ตใน my.ini และในเว็บไซต์หรือโปรแกรมทุกตัวที่เชื่อมต่อฐานข้อมูล

ทำไม XAMPP เปิด MariaDB ไม่ได้

สาเหตุที่พบบ่อยคือพอร์ต 3306 ชนกับ MySQL หรือ MariaDB ตัวอื่น รวมถึงไฟล์ฐานข้อมูลเสียหายจากการปิดเครื่องไม่สมบูรณ์

MariaDB ใช้งานฟรีหรือไม่

MariaDB Community Server เป็นซอฟต์แวร์โอเพนซอร์สและใช้งานได้ฟรี ส่วนบริการหรือผลิตภัณฑ์ระดับองค์กรบางประเภทอาจมีค่าใช้จ่าย


สรุป

ปัญหา MariaDB ใช้ไม่ได้บน Windows 10 ส่วนใหญ่มาจาก MariaDB Service หยุดทำงาน พอร์ต 3306 ชนกับ MySQL ตัวอื่น ค่า Username หรือ Password ผิด ไฟล์ my.ini ไม่ถูกต้อง หรือ Data Directory มีปัญหา ควรเริ่มจากตรวจสอบ Service, Port, Error Log และทดลองเชื่อมต่อผ่าน Command Line ตามลำดับ

ทีม comsiam แนะนำให้สำรองฐานข้อมูลก่อนแก้ไข my.ini, Data Directory หรือไฟล์ InnoDB ทุกครั้ง เพราะการลบหรือเปลี่ยนไฟล์ผิดอาจทำให้ข้อมูลเสียหายถาวร นอกจากนี้ comsiam ยังแนะนำให้ตรวจสอบ Error Log เป็นอันดับแรกเมื่อ MariaDB เปิดไม่ขึ้น เพราะมักระบุสาเหตุที่แท้จริงได้รวดเร็วกว่าการถอนและติดตั้งใหม่

Popular posts from this blog

Windows 10 WiFi เปิดไม่ได้ – วิธีแก้ WiFi Not Turning On

Windows 10 ช้าหลัง Update – วิธีแก้ Slow After Update แบบช่าง IT มืออาชีพ

Activate Windows ไม่ได้ เกิดจากอะไร? วิธีแก้ปัญหา Windows ไม่แท้แบบถูกต้อง