ข้อผิดพลาดการเข้าถึง Mysql ถูกปฏิเสธ


9

ฉันมีปัญหาที่พบบ่อย แต่วิธีการแก้ปัญหาตามปกติไม่ทำงานดังนั้นขอโทษสำหรับสิ่งที่ปรากฏตัวครั้งแรกอาจดูเหมือนคำถามที่ถามก่อนหน้านี้

ฉันมีข้อผิดพลาดต่อไปนี้เมื่อพยายามดูเว็บไซต์ของฉันในพื้นที่ของฉัน

    Access denied for user 'sitename'@'localhost' (using password: YES)

ข้อมูลประจำตัวถูกใช้ผิด แต่ฉันไม่รู้ว่ามาจากไหน ฉันตรวจสอบแอพ / etc / local.xml แล้วและมีข้อมูลรับรองที่ถูกต้องทั้งหมด ฉันได้ลบไฟล์ xml อื่น ๆ ทั้งหมดจากไดเรกทอรี (ยกเว้น config.xml) ฉันลบเนื้อหาของโฟลเดอร์ var (หลายครั้ง)

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


ฉันจะไปที่วิธีการเชื่อมต่อในอะแดปเตอร์ DB และขวาก่อนที่จะโทรไปที่วิธีการเชื่อมต่อให้วางสิ่งที่ต้องการ: '$ e = new Exception (); Mage :: log ($ e-> getTraceAsString (), null, 'logname', จริง); ' รับร่องรอยเช่นนี้มีขนาดกะทัดรัดมากขึ้น จากนั้นในการติดตามนั้นดูเส้นทางรหัสแปลก ๆ บันทึกข้อมูลประจำตัวจริงที่ส่งไปยัง PDO ด้วย
Petar Dzhambazov

คำตอบ:


8

คุณต้องทำให้ผู้ใช้sitename@localhostสามารถเข้าถึงฐานข้อมูลและตารางที่เป็นปัญหา ใช้ SQL ต่อไปนี้เป็น root หรือ superuser บนอินสแตนซ์ MySQL เพื่อให้สิทธิ์:

GRANT ALL ON magento_local.* TO 'sitename'@'localhost';

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Grants ใน MYSQL ดูคู่มือ: http://dev.mysql.com/doc/refman/5.1/en/grant.html


ขอบคุณสำหรับคำตอบ. ฉันเจอตัวเลือกนี้ก่อนหน้านี้ แต่ฉันไม่คิดว่ามันจะใช้งานได้ เนื่องจากผู้ใช้: 'ชื่อผู้ใช้' และรหัสผ่าน: 'ใช่' ไม่ใช่ข้อมูลประจำตัวฐานข้อมูลที่ถูกต้อง / ที่ระบุฉันคิดว่านี่ไม่ได้แก้ปัญหารายละเอียดที่ไม่ถูกต้องจริง ๆ หรืออาจหารายละเอียดใน app / etc / local.xml ความสามารถในการเชื่อมต่อกับฐานข้อมูลหนึ่งครั้งด้วยรายละเอียดที่ไม่ถูกต้อง
พัฒนาชั่วโมง

มีความแตกต่างระหว่างการเข้าถึง mysql โดยตรงและผ่าน 'localhost' ซึ่งเป็นเครือข่าย คุณต้องให้สิทธิ์อย่างชัดเจนในตำแหน่ง localhost
philwinkle

2
จำและเรียกใช้: flush privilegesหลังจากคำสั่งอนุญาตของคุณ
Matthew Haworth

5

ในกรณี local.xml <username>sitename</username>จะถูกแทนที่ค้นหาเว็บไซต์ของคุณสำหรับไฟล์ที่มีสิ่งที่ต้องการ สำหรับงานประเภทนี้ฉันชอบack :

ack --xml "<username>.*sitename.*</username>" app/

... หรือแม้กระทั่ง:

ack sitename app/

4

ลองล้างแคชบางทีคุณอาจใช้เลเยอร์แคชบุคคลที่สามปิดใช้งาน ตัวเลือกสุดท้ายคือเปลี่ยนชื่อแอป / etc / local.xml และเว็บไซต์เปิด Magento ควรรันกระบวนการติดตั้งในระหว่างการติดตั้งจะให้รหัสการเข้ารหัสเก่าจาก local.xml


1

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

ไซต์นี้ใช้ wordpress เป็นโมดูล โมดูลนี้มีข้อมูลประจำตัวของฐานข้อมูลรวมถึง magento app / etc / local.xml ปกติ ฉันไม่ทราบว่าโมดูลนี้แสดงผลได้ทั่วไซต์และเกี่ยวข้องกับฐานข้อมูล ดังนั้นมันจึงเป็นไปไม่ได้ที่จะดูเว็บไซต์โดยไม่ต้องเปลี่ยนรายละเอียดในที่นี่ด้วย


0

ฉันมีปัญหาเดียวกันต่อไปนี้แก้ไขได้สำหรับฉัน:

  1. ดาวน์โหลด Magento เวอร์ชันดั้งเดิม
  2. สำรองแอปของคุณ / etc (เช่น: แอป / _etc)
  3. อัปโหลดแอพ / etc ดั้งเดิมจากโฟลเดอร์ Magento ดั้งเดิม
  4. ไปที่ไซต์ของคุณและทำขั้นตอนการติดตั้ง Magento ฉันใช้ชื่อฐานข้อมูลดั้งเดิมของฉันการตั้งค่าฐานข้อมูล (ผู้ใช้ / รหัสผ่าน) และรหัสการเข้ารหัส
  5. อัปโหลดแอปของคุณ / etc / modules ไปยังโฟลเดอร์ ETC ใหม่
  6. หลังจากการติดตั้งฉันสามารถเข้าสู่ระบบและล้างแคช เว็บไซต์ทำงานเหมือนเดิมอีกครั้ง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.