PHP MySql (1045) Доступ запрещен для пользователя

Я попытался найти существующий ответ на эту проблему, но ответы, которые я нахожу, пока не сработали.

Я пытаюсь использовать 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) 
  • «localhost» – это хост-сервер, на котором расположен сервер MySql (похоже, это работает)
  • «cPanelUsername» – мое имя пользователя cpanel
  • «dbUsername» – пользователь базы данных, который я добавил в базу данных со всеми предоставленными разрешениями
  • «dbPassword» – это пароль базы данных для dbUsername
  • «dbName» – это имя базы данных

В результате я добавил имя пользователя cPanel перед именем dbName и dbUsername после поиска ответов на эту проблему в другом месте.

Похоже, что у меня все настроено правильно, но это не соединение (с ошибкой выше). У меня нет прямого контроля над сервером, о котором мне не нужно было бы спрашивать у моего веб-хостинга, что может занять несколько дней, чтобы разобраться. У меня что-то не так с кодом подключения?

Solutions Collecting From Web of "PHP MySql (1045) Доступ запрещен для пользователя"

Сначала проверьте базу данных, в которой вы предоставили надлежащий пользовательский доступ к вашей базе данных, который предоставляется от добавления пользователя к базам данных из раздела базы данных Mysql в cpanel.

после этого проверьте его снова,

сначала попробуйте нормальный код соединения в php,

 $con = mysql_connect("localhost","cpanel_username","cpanel_password"); if (!$con) { die('Could not connect: ' . mysql_error()); } 

В cPanel убедитесь, что:

  1. Пользователь базы данных cPanelUsername_dbName существует, с паролем dbPassword
  2. База данных, которую вы хотите использовать, существует.
  3. Пользователю cPanelUsername_dbName разрешен доступ к базе данных.
  4. Пользователю 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, убедитесь, что у вас есть соответствующий пароль и имя хоста в вашем файле PHP, файле config.inc.php.

Если вам нужно изменить пароль для MySQL 5.7.6 и более поздних версий:

 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; 

MySQL 5.7.5 и ранее:

 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass'); 
  • Если вы пытаетесь получить доступ к локальному серверу с другого компьютера, то есть (эмулятор, другой компьютер), убедитесь, что вы используете фактический IP-адрес локального хоста , НЕ ИСПОЛЬЗУЙТЕ localhost в качестве имени хоста. Потому что это похоже на то, что устройство подключается к самому себе, но сервер находится на другом IP-адресе.