Доступ запрещен при подключении к MySQL с переполнением стека

Я знаю, что многие темы уже задают этот вопрос, но я занимался этим часами и остался в тупике. Я пытаюсь подключиться к базе данных MySQL, на которой работает мой MacBook со следующим PHP:

<?php
DEFINE('DB_USER', 'webuser');
DEFINE('DB_PASSWORD', 'thispassword');
DEFINE('DB_HOST', '127.0.0.1:3306');
DEFINE('DB_NAME', 'learning_accounts');

$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
OR die('Error connecting: ' .
mysqli_connect_error()
);

?>

Это возвращает следующую ошибку:

Error connecting: Access denied for user 'webuser'@'localhost' (using password: YES)

Я могу нормально подключиться через терминал, даже пытаясь соединиться с PHP и root не работает. Я новичок как в PHP, так и в MySQL, поэтому любые рекомендации и понимание будут оценены!

Я испробовал множество решений, таких как предоставление привилегий, удаление привилегий, создание новых пользователей, использование PDO, ничего не помогло — пожалуйста, помогите!

Большое спасибо, я ненавижу изучать новые языки, потому что вначале я потерянная рыба, когда дело доходит до отладки!

Обновить

У меня установлен пароль для моей учетной записи root, но изменение переменной DB_PASSWORD на » приводит к изменению ошибки на: Ошибка подключения: Неизвестная база данных ‘learning_accounts’

Обновление 2
Я исправил проблему, проверьте мой ответ, чтобы увидеть, как, если у вас возникла эта проблема, то я надеюсь, что вы быстро нашли эту ветку!

  • Зак Л

0

Решение

Возможно, у вас есть анонимный пользователь » @ ‘localhost’ или » @ ‘127.0.0.1’

1

Другие решения

Если вы пытались получить привилегии и т. д. множество решений, вы можете создать другую учетную запись и попробовать ее.

Если возникает такая же проблема, то это проблема сервиса / демона mysql.

У меня такой же опыт раньше времени.

Так что в то время я переустановил сервер MySQL, и проблема была исправлена.

1

Попробуйте изменить «DB_HOST» на «localhost».
Если это не решило проблему, переустановите сервер MySQL

1

Как @DontPanic предложил в своем комментарии избавиться от 3306 от 127.0.0.1:3306,

Если вы используете XAMPP, WAMP или EasyPHP, пароль MySQL не устанавливается по умолчанию. Следовательно, вы должны использовать

DEFINE('DB_USER', 'root'); // default user name
DEFINE('DB_PASSWORD', ''); // empty password just open single quote and close
1

Если вы работаете на локальном сервере, нет необходимости запрашивать пароль, просто сделайте его «пустым».

    define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'learning_accounts');

$conn = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
if (!$link) {
die("Database connection failed: " . mysqli_error());
}

Если вы работаете на сервере, просто измените DB_USER, DB_PASSWORD а также DB_NAME,
Если по-прежнему не удается подключиться, проверьте правильность имени базы данных или нет.

Если все идеально, вы должны проверить ссылку ниже

Как установить MySQLi

1

Итак, я наконец понял это. Проблема заключалась в том, что я установил php отдельно и создал свою базу данных, затем установил XAMPP и попытался подключиться к этой базе данных. Надлежащим способом является создание базы данных с использованием php my admin, которая поставляется с XAMPP и имеет собственные php, mysql и apache, которые вы должны использовать, чтобы все работало.

Я надеюсь, что кто-то еще, у кого есть эта проблема, найдет эту нить, поскольку это были несколько дней ада, будучи шарами в файлах конфигурации — но этого можно было легко избежать, если бы я знал, что я делал.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector