PHP – ошибка доступа к MySQL – работает в других программах

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

Да, эта ошибка слишком распространена, и я потратил много времени на ее изучение. Однако ничто не решило проблему.

Я получаю эту ошибку при попытке первого подключения в одном из моих PHP-скриптов, которые я разрабатываю. Если это помогает узнать, я запускаю Linux Mint с конфигурацией LAMP, установленной на http://community.linuxmint.com/tutorial/view/486 .

Дело в том, что любое другое приложение работает с подключением. Оба входа в PhpMyAdmin в качестве пользователя root или mysql на консоли, как root работают отлично. Сам сайт MySQL говорит, что это, вероятно, проблема с моим кодом, но я еще не понял этого … Я немного новичок в этом, поэтому, пожалуйста, простите меня, если это очень опасная ошибка.

Я использую внешнюю функцию на другой странице (импортированной с помощью require_once). Это плохая практика? Независимо от того, вот это:

 global $sql_conn, $sql_addr, $sql_user, $sql_pass, $sql_datb; $config=app_readconfig(); echo "<p>".$sql_addr." ".$sql_user." ".$sql_pass." ".$sql_datb."</p>";//DEBUG, shows values are read if($config==FALSE) { echo "<p>Error: Missing values in darkace_config.txt!</p>"; return FALSE; } $sql_conn=mysql_connect($sql_addr,$sql_user,$sql_pass); if(!$sql_conn) { echo "<p>MYSQL Error: ".mysql_error()."</p>"; return FALSE; } if(!mysql_select_db($sql_datb,$sql_conn)) { echo "<p>MYSQL Error selecting database: ".mysql_error()."</p>"; return FALSE; } return TRUE; 

Эта функция вызывается, и я возвращаю сообщение: Ошибка MYSQL: доступ запрещен для пользователя «root» @ «localhost» (с использованием пароля: YES)

У вас есть «root [SPACE]» в качестве имени пользователя. Попробуйте «root» без пробела?

Что-то не так с вашими учетными данными .

Проверьте:

  • имя пользователя
  • пароль
  • хозяин

Кроме того, прекратите использование функций mysql_* поскольку они теперь устарели . Вместо этого используйте MySQLi или PDO .

Ваше соединение должно быть таким

 $link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password'); 

не включайте http, добавьте номер порта в пример, проверьте имя пользователя и пароль.

Если вы будете раздражать вас, но каждый раз, когда вы используете функцию mysql_ *, вы получите рекомендацию PDO. Я также рекомендую PDO, PHP также рекомментирует PDO, вы можете проверить документацию PHP для mysql_connect