[Обновлено ниже]
У меня проблема с подключением к базе данных MySQL с использованием стека LAM Bitnami.Это код, который я использовал для подключения на сервере общего хостинга, где я изначально размещал базу данных:
DEFINE ('DB_USER', 'username');
DEFINE ('DB_PASSWORD', 'password');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'database');
if ($dbc = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD)) { // Make the connnection.
if (!mysql_select_db (DB_NAME)) { // If it can't select the database.
// Handle the error.
trigger_error("Could not select the database!\n<br />MySQL Error: " . mysql_error());
exit();
} // End of mysql_select_db IF.
} else { // If it couldn't connect to MySQL.
trigger_error("Could not connect to MySQL!\n<br />MySQL Error: " . mysql_error());
exit();
} // End of $dbc IF.
При запуске этого на моем сервере Bitnami я не получаю ответа (даже сообщения об ошибке).(PHP работает нормально.)
Затем я попытался
<?php
$link = mysql_connect('localhost', 'username', 'password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
и получил
Could not connect: Access denied for user 'username'@'localhost' (using password: YES)
эта комбинация имени пользователя и пароля определенно существует и (насколько я могурасскажите) имеет доступ к рассматриваемой базе данных.Мне интересно, что я делаю неправильно и почему оригинальный сценарий не выдает ошибку (или соединение).
Обновление:
Я последовал предложению Майкла ниже, исмог подключиться.Я хотел воспроизвести проблему, поэтому я удалил этого пользователя, затем создал пользователя testuser через
CREATE USER 'testuser'@'%' IDENTIFIED BY '***';
GRANT SELECT ,
INSERT ,
UPDATE ,
DELETE ,
FILE ON * . * TO 'testuser'@'%' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Затем, следуя совету Майкла, я выполнил
GRANT ALL PRIVILEGES ON test . * TO testuser@localhost IDENTIFIED BY 'password'
, но снова получаю
Could not connect: Access denied for user 'testuser'@'localhost' (using password: YES)
(Это не работает, использую ли я '%' или 'localhost')
Так выглядят привилегии для testuser в phpmyadmin
Database Privileges Grant Table-specific privileges
test ALL PRIVILEGES No No Edit Privileges