Не вдалося підключитися: Відмовлено в доступі для користувача 'root'@'localhost' (використовуючи пароль: YES)" з функції php
Я написав деяку функцію, яка використовується на php-сторінці, для взаємодії з базою даних mysql. Коли я тестую їх на своєму сервері, то отримую таку помилку:
"Connect failed: Access denied for user 'root'@'localhost' (using password: YES)"
Я можу використовувати їх на своєму ПК (використовуючи XAMPP) і можу переміщатися по таблицях бази даних за допомогою командного рядка на сервері. Однак веб-сторінка не вдається підключитися. Я перевірив пароль, але безрезультатно. Він правильний (інакше я не зміг би увійти в mysql з командного рядка).
Виклик функції наступний:
$conn = new mysqli("localhost", "root", "password", "shop");
Чи потрібно щось налаштовувати в моєму сервері? Дякую
Редагувати: PHP версія 5.3.3-7+squeeze1 версія mysql: 5.1.49-3 обидва на debian
57
3
Чи є в БД запис облікового запису користувача root@localhost? У MySQL ви можете встановити різні дозволи для облікових записів користувачів за хостами. Може існувати декілька різних облікових записів з однаковим ім'ям у поєднанні з хостом, з якого вони підключаються. Найпоширенішими з них є root@127.0.0.1 та root@localhost. Вони можуть мати різні паролі та дозволи. Переконайтеся, що обліковий запис root@localhost існує і має потрібні налаштування.
Я готовий посперечатися, виходячи з Ваших пояснень, що проблема саме в цьому. Підключення з іншого ПК використовує інший обліковий запис, ніж root@localhost, а командний рядок, я думаю, підключається за допомогою root@127.0.0.1.
З того, що ви сказали, це схоже на проблему, коли драйвер MySQL в PHP5.3 має проблеми з підключенням до старої версії MySQL 4.1. Подивіться на http://www.bitshop.com/Blogs/tabid/95/EntryId/67/PHP-mysqlnd-cannot-connect-to-MySQL-4-1-using-old-authentication.aspx
Тут є схоже питання з корисними відповідями, https://stackoverflow.com/questions/1575807/cannot-connect-to-mysql-4-1-using-old-authentication
Спробуйте ініціалізувати свої змінні і використовувати їх в об'єкті підключення: