Я попытался найти существующий ответ на эту проблему, но ответы, которые я нахожу, пока не сработали.
Я пытаюсь использовать PHP для подключения к базе данных MySql. Мой веб-хост использует cPanel для Linux. Код, который я использую для этого, кажется достаточно стандартным:
$mysqli = new mysqli("localhost", "cPanelUsername_dbUsername", "dbPassword", "cPanelUsername_dbName");
Я получаю следующую ошибку:
Failed to connect to MySQL: (1045) Access denied for user 'cPanelUsername_dbUsername'@'localhost' (using password: YES)Access denied for user 'cPanelUsername'@'localhost' (using password: NO)
В результате я добавил имя пользователя cPanel перед именем dbName и dbUsername после поиска ответов на эту проблему в другом месте.
Похоже, что у меня все настроено правильно, но это не соединение (с ошибкой выше). У меня нет прямого контроля над сервером, о котором мне не нужно было бы спрашивать у моего веб-хостинга, что может занять несколько дней, чтобы разобраться. У меня что-то не так с кодом подключения?
Сначала проверьте базу данных, в которой вы предоставили надлежащий пользовательский доступ к вашей базе данных, который предоставляется от добавления пользователя к базам данных из раздела базы данных Mysql в cpanel.
после этого проверьте его снова,
сначала попробуйте нормальный код соединения в php,
$con = mysql_connect("localhost","cpanel_username","cpanel_password"); if (!$con) { die('Could not connect: ' . mysql_error()); }
В cPanel убедитесь, что:
cPanelUsername_dbName
существует, с паролем dbPassword
cPanelUsername_dbName
разрешен доступ к базе данных. cPanelUsername_dbName
разрешен доступ к базе данных с localhost
, 127.0.0.1
и IP-адресом вашего сервера. Ваши соединения MySQL могут использовать 127.0.0.1
или IP-адрес вашего сервера, и MySQL отклонит соединение, если доступ не предоставляется для конкретного используемого IP-адреса.
проверьте правильность написания базы данных на своем phpMyAdmin
. Обычно имя находится в формате user_dbname
.
Например:
cpanel username: jack, database created: student
В вашем php
скрипте имя jack_student
должно быть jack_student
Это сработало для меня:
Если вам нужно изменить пароль для MySQL 5.7.6 и более поздних версий:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5 и ранее:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');