Я полностью застрял, потратив пару дней, пытаясь понять это ...
Я установил веб-сервер Apache (версия 2.4.34) на моей Mac OS под управлением Mojave (10.14.3) и установили текущую версию MySQL Community Server (8.0.15).Оба работают отлично, как я могу определить (из командной строки).У меня установлен PHP 7.1.23.Когда я создаю файл .php со следующим кодом и помещаю его в мой каталог Sites, а затем в Safari перехожу на http://localhost/~dave/hello.php, я получаю эту ошибку:
"Предупреждение: mysqli ::__construct (): (HY000 / 2002): нет такого файла или каталога в /Users/dave/Sites/hello.php в строке 7 Ошибка подключения: нет такого файла или каталога ".
Код вhello.php:
<?php
$servername = "localhost";
$username = "dave";
$password = "*****";
//Create connection
$conn = new mysqli($servername, $username, $password);
//Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
Я перепробовал все, что мог, включая предложения в двух других похожих постах (этот: Пользователь моей базы данных существует, но я все еще получаю (HY000/ 2002): нет такого файла или каталога , а этот: PHP Предупреждение: mysqli :: __ construct (): (HY000 / 2002): такого файла или каталога нет (Debian GNU / Linux 9) ), и я не могу подключиться к MySQl с помощью php.В частности, я проверил информацию на странице php, и сокет для mysqli указан как var/mysql/mysql.sock
.В соответствующей таблице в mysql значение для сокета указано как /tmp/mysql.sock
.Я попытался изменить файл php.ini.default, добавив каждый из этих сокетов (вместо пустого значения), и ни один из них не работал (по-прежнему выдает ту же ошибку).Я думал, что ошибка сокета MySQL 2002 может быть проблемой, поэтому я сделал символическую ссылку, выполнив это:
sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
, но все, что сделал, это сгенерировал новую ошибку:
Предупреждение: mysqli :: __ construct (): сервер запросил неизвестный клиенту метод аутентификации [caching_sha2_password] в /Users/dave/Sites/hello.php в строке 7
Предупреждение: mysqli :: __ construct ():(HY000 / 2054): сервер запросил метод аутентификации, неизвестный клиенту, в /Users/dave/Sites/hello.php в строке 7 Ошибка подключения: сервер запросил метод аутентификации, неизвестный клиенту
Поэтому я удалил символическую ссылку ... и вернулся к исходной ошибке.
Я также попытался заменить "localhost" на IP-адрес 127.0.0.1, а также "localhost: 3306", как предлагали другие ветки вопросов.Здесь тоже ничего не работает.
Пожалуйста, помогите, я новичок в этом виде использования компьютера / веб-дизайна, и у меня нет очевидных (googleable / понятно) вариантов.