ข้อผิดพลาด 1045 (28000) การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ root localhost (แก้ไขแล้ว)
เผยแพร่แล้ว: 2023-03-14“ข้อผิดพลาด 1045 (28000) การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ root localhost” เป็นข้อผิดพลาดที่พบบ่อยเมื่อพยายามเข้าถึง MySQL ผ่าน WordPress CMS อย่างไรก็ตาม ข้อผิดพลาดนี้อาจเกิดขึ้นได้ในสถานการณ์อื่นๆ
ข้อผิดพลาดที่คุณพบแสดงว่าผู้ใช้ "รูท" ไม่มีสิทธิ์ที่จำเป็นในการเข้าถึงฐานข้อมูลจาก localhost สาเหตุเบื้องหลังปัญหานี้อาจเกิดขึ้นได้จากหลายสาเหตุ รวมถึงรหัสผ่านไม่ถูกต้อง ชื่อผู้ใช้ไม่ถูกต้อง หรือการอนุญาตที่ไม่เพียงพอแก่ผู้ใช้
ต่อไปนี้คือขั้นตอนบางส่วนที่คุณสามารถทำได้เพื่อแก้ไขข้อผิดพลาดนี้
1. ตรวจสอบชื่อผู้ใช้และรหัสผ่าน
ตรวจสอบให้แน่ใจว่าคุณใช้ชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง ชื่อผู้ใช้ควรเป็น "รูท" และรหัสผ่านควรเป็นชื่อที่คุณตั้งไว้ในระหว่างขั้นตอนการติดตั้ง
ในกรณีที่คุณใช้ WordPress คุณต้องตรวจสอบไฟล์ wp-config.php ไฟล์สามารถพบได้ในโฟลเดอร์หลักของ WordPress
หลังจากเปิดไฟล์และพยายามแก้ไข (Visual Studio Code) คุณจะมีหน้าจอนี้:
ตรวจสอบ DB_USER และ DB_PASSWORD ว่ามีค่าที่ถูกต้องหรือไม่
/** Database username */ define( 'DB_USER', 'root' );
/** Database password */ define( 'DB_PASSWORD', 'root' );
หากคุณไม่ทราบว่าชื่อผู้ใช้และรหัสผ่านของคุณสำหรับ DB คืออะไร ให้เข้าไปที่ cPanel > Database > Mysql แล้วตรวจสอบ
หากต้องการเปลี่ยนรหัสผ่านของฐานข้อมูล WordPress โปรดทำตามบทช่วยสอน: เปลี่ยนรหัสผ่าน WordPress ใน PHPMyAdmin
2. ตรวจสอบว่าผู้ใช้มีสิทธิ์ที่จำเป็นหรือไม่
ตรวจสอบว่าผู้ใช้ "รูท" มีสิทธิ์ที่จำเป็นในการเข้าถึงฐานข้อมูลหรือไม่
ขั้นตอนที่ 1: ขั้นแรก คุณต้องเปิดเทอร์มินัลแล้วเขียน ssh [ป้องกันอีเมล]
ssh [email protected]
ขั้นตอนที่ 2: หลังจากเข้าสู่ระบบสำเร็จให้จดคำสั่งนี้
mysql -uroot -p
ขั้นตอนที่ 3: หลังจากเพิ่มรหัสผ่านของคุณ คุณสามารถเริ่มเพิ่มคำสั่งของคุณจากพรอมต์ mysql
ขั้นตอนที่ 4: คุณสามารถใช้คำสั่งต่อไปนี้เพื่อตรวจสอบสิทธิ์:
SHOW GRANTS FOR 'root'@'localhost';
นี่จะแสดงรายการสิทธิพิเศษที่ผู้ใช้ "root" มีสำหรับเซิร์ฟเวอร์ "localhost" หากผู้ใช้ไม่มีสิทธิ์ที่จำเป็น คุณสามารถให้สิทธิ์ได้โดยใช้คำสั่งต่อไปนี้:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';
หมายเหตุ: แทนที่ 'รหัสผ่าน' ด้วยรหัสผ่านที่คุณต้องการใช้
ในการตรวจสอบว่าผู้ใช้มีสิทธิ์ที่จำเป็นโดยใช้ phpMyAdmin หรือไม่ ให้ทำตามขั้นตอนเหล่านี้:
- เข้าสู่ระบบบัญชี phpMyAdmin ของคุณ
- คลิกที่แท็บ "บัญชีผู้ใช้"
- เลือกบนรูทผู้ใช้ (หรือที่คุณต้องการเปลี่ยนรหัสผ่าน)
- คลิกที่ลิงค์แก้ไขสิทธิ์
- คุณสามารถดูรายการสิทธิพิเศษที่ผู้ใช้ได้รับได้ที่นี่
- ตรวจสอบให้แน่ใจว่าผู้ใช้ได้รับสิทธิ์ที่จำเป็นในการเข้าถึงฐานข้อมูล
- หากผู้ใช้ไม่มีสิทธิ์ที่จำเป็น คุณสามารถให้สิทธิ์ได้โดยเลือกช่องทำเครื่องหมายที่เกี่ยวข้องแล้วคลิกปุ่ม "ไป"
- เมื่อคุณให้สิทธิ์ที่จำเป็นแล้ว ให้ลองเข้าถึงฐานข้อมูลอีกครั้งเพื่อดูว่าปัญหาได้รับการแก้ไขหรือไม่
ควรตรวจสอบการตั้งค่าในพื้นที่ที่ไฮไลต์:
หมายเหตุ: หากคุณไม่สามารถให้สิทธิ์ที่จำเป็นผ่าน phpMyAdmin ได้ คุณอาจต้องเข้าถึงอินเทอร์เฟซบรรทัดคำสั่งของ MySQL เพื่อให้สิทธิ์
3. ตรวจสอบสถานะเซิร์ฟเวอร์ MySQL
ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ MySQL กำลังทำงานอยู่ คุณสามารถตรวจสอบสถานะเซิร์ฟเวอร์ได้โดยการรันคำสั่งต่อไปนี้หลังจากล็อกอินในเซิร์ฟเวอร์เชลล์:
systemctl status mysql
หากเซิร์ฟเวอร์ไม่ทำงาน ให้เริ่มโดยใช้คำสั่งต่อไปนี้:
systemctl start mysql
ในการตรวจสอบสถานะ Mysql บนโฮสติ้ง cPanel คุณต้องลงชื่อเข้าใช้แดชบอร์ดโฮสติ้งของคุณ อีกวิธีคือติดต่อผู้ให้บริการโฮสติ้งของคุณโดยตรง
4. ตรวจสอบว่าเซิร์ฟเวอร์ MySQL กำลังฟังพอร์ตที่ถูกต้องหรือไม่
ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ MySQL กำลังฟังพอร์ตที่ถูกต้อง พอร์ตเริ่มต้นสำหรับ MySQL คือ 3306
หากต้องการตรวจสอบว่าเซิร์ฟเวอร์ MySQL กำลังฟังพอร์ตที่ถูกต้องหรือไม่ คุณสามารถทำตามขั้นตอนต่อไปนี้:
1. เปิดเทอร์มินัลหรือพรอมต์คำสั่งบนเซิร์ฟเวอร์ของคุณที่ติดตั้ง MySQL
2. เชื่อมต่อกับเซิร์ฟเวอร์ MySQL โดยใช้ไคลเอนต์บรรทัดคำสั่ง คุณสามารถใช้คำสั่งต่อไปนี้ แทนที่ username
และ password
ด้วยข้อมูลรับรอง MySQL จริงของคุณ:
mysql -u username -p
3. เมื่อคุณเชื่อมต่อกับเซิร์ฟเวอร์ MySQL แล้ว ให้พิมพ์คำสั่งต่อไปนี้เพื่อแสดงหมายเลขพอร์ตที่เซิร์ฟเวอร์ MySQL กำลังฟังอยู่:
SHOW VARIABLES LIKE 'port';
คำสั่งนี้จะแสดงหมายเลขพอร์ตที่เซิร์ฟเวอร์ MySQL กำลังฟังอยู่ ตามค่าเริ่มต้น MySQL จะรับฟังพอร์ต 3306
คุณยังสามารถตรวจสอบหมายเลขพอร์ตในไฟล์คอนฟิกูเรชัน MySQL
ไฟล์การกำหนดค่ามักจะชื่อ my.cnf
หรือ my.ini
และอยู่ในไดเร็กทอรีการติดตั้ง MySQL
หากต้องการค้นหาไดเร็กทอรีการติดตั้ง MySQL คุณสามารถทำตามขั้นตอนเหล่านี้:
1. เปิดเทอร์มินัลหรือพรอมต์คำสั่งบนเซิร์ฟเวอร์ของคุณที่ติดตั้ง MySQL
2. พิมพ์คำสั่งต่อไปนี้เพื่อตรวจสอบว่ามีการติดตั้ง MySQL หรือไม่:
which mysql
หากติดตั้ง MySQL ไว้ คำสั่งนี้จะแสดงพาธไปยังไฟล์ปฏิบัติการ mysql
มิฉะนั้น คุณจะได้รับข้อความแสดงข้อผิดพลาด
หากติดตั้ง MySQL แล้ว คุณสามารถใช้คำสั่ง which
อีกครั้งเพื่อค้นหาไดเร็กทอรีการติดตั้ง พิมพ์คำสั่งต่อไปนี้ แทนที่ /path/to/mysql
ด้วยเส้นทางไปยังไฟล์ปฏิบัติการ mysql
:
which mysql | xargs readlink -f | sed "s|bin/mysql$||"
คำสั่งนี้จะแสดงไดเรกทอรีการติดตั้ง MySQL คุณสามารถใช้ไดเร็กทอรีนี้เพื่อค้นหาไฟล์การกำหนดค่า MySQL ( my.cnf
หรือ my.ini
) และไฟล์และไดเร็กทอรี MySQL อื่นๆ
หรือหากคุณมีสิทธิ์เข้าถึงไคลเอนต์ MySQL คุณยังสามารถดำเนินการค้นหาต่อไปนี้เพื่อค้นหาไดเร็กทอรีการติดตั้ง MySQL:
SELECT @@basedir;
นี่จะแสดงไดเร็กทอรีการติดตั้ง MySQL
คุณยังสามารถตรวจสอบไฟล์การกำหนดค่า MySQL เพื่อตรวจสอบหมายเลขพอร์ตที่กำหนดค่า MySQL ให้รับฟัง ไฟล์การกำหนดค่ามักจะชื่อ my.cnf หรือ my.ini และอยู่ในไดเร็กทอรีการติดตั้ง MySQL
เปิดไฟล์การกำหนดค่าด้วยโปรแกรมแก้ไขข้อความและค้นหาพารามิเตอร์พอร์ต ค่าของพารามิเตอร์นี้ระบุหมายเลขพอร์ตที่กำหนดค่า MySQL ให้รับฟัง
หากเซิร์ฟเวอร์ MySQL ไม่รับฟังพอร์ตที่ถูกต้อง คุณสามารถเปลี่ยนพารามิเตอร์พอร์ตในไฟล์กำหนดค่าและรีสตาร์ทเซิร์ฟเวอร์ MySQL เพื่อใช้การเปลี่ยนแปลง
อย่าลืมรีสตาร์ทบริการ Mysql หากคุณเปลี่ยนพอร์ต:
service mysql restart
5. รีเซ็ตรหัสผ่านรูท
หากขั้นตอนข้างต้นไม่ได้ผล คุณสามารถลองรีเซ็ตรหัสผ่านรูทได้ คุณสามารถทำได้โดยทำตามขั้นตอนในบทความนี้:
https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
หมายเหตุ: วิธีนี้ต้องการให้คุณมีสิทธิ์เข้าถึงไฟล์คอนฟิกูเรชัน MySQL และความสามารถในการรีสตาร์ทเซิร์ฟเวอร์ MySQL
คุณอาจสนใจอ่าน:
วิธีแก้ไขข้อผิดพลาด “การติดตั้งล้มเหลว: ไม่สามารถสร้างไดเร็กทอรี” บน WordPress
วิธีแก้ไข WordPress ติดอยู่ในโหมดการบำรุงรักษา (แก้ไขแล้ว)
วิธีแก้ไข “การอัปเดตล้มเหลว การตอบกลับไม่ใช่การตอบกลับ JSON ที่ถูกต้อง”
วิธีแก้ไข “ข้อผิดพลาดในการสร้างการเชื่อมต่อฐานข้อมูล”? – 2566
ในฐานะหนึ่งในผู้ร่วมก่อตั้ง Codeless ฉันได้นำความรู้ความเชี่ยวชาญด้านการพัฒนา WordPress และเว็บแอปพลิเคชัน ตลอดจนประวัติการจัดการโฮสติ้งและเซิร์ฟเวอร์อย่างมีประสิทธิภาพมาสู่คุณ ความหลงใหลในการแสวงหาความรู้และความกระตือรือร้นในการสร้างและทดสอบเทคโนโลยีใหม่ๆ ผลักดันให้ฉันคิดค้นและปรับปรุงอย่างต่อเนื่อง