PHP не подключается к MYSQL через локальный сокет - PullRequest
0 голосов
/ 08 июня 2018

Я только что установил mysql на свой MacBook Pro, похоже, что mysql работает, однако я не могу подключиться к mysql из php через mysqli.Я продолжаю получать ошибки.Я прочитал много разных статей и веб-страниц, которые кажутся сложными и не решают мою проблему.

Я добавил / tmp / mysock в файл php.ini:

pdo_mysql.default_socket= /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

Я установил apache, php, mysql по отдельности и не использую такие программы, как MAMP, XAMP, phpmyadminили MYSQLworkbench

Это мой код PHP, который пытается подключиться к базе данных, и после кода отображается ошибка, которая отображается в браузере.

<?php
$title = $_POST['blog_title'];
$body = $_POST['blog_entry'];
$link = mysqli_connect('localhost','root','password','blog');
if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}


mysqli_select_db($link,"blog") or die("Unable to select database");
$query = "INSERT INTO entires(title,body) VALUES ($title,$body);";
mysqli_query($query);
mysqli_close($link);
header('Location: ViewBlog.php');
exit();
?>

Это ошибка, которую я получаю:

Ошибка: невозможно подключиться к MySQL.Ошибка отладки: 2054 Ошибка отладки: сервер запросил неизвестный клиенту метод проверки подлинности

Я так долго пытался выяснить это, любая помощь будет принята с благодарностью, спасибо.База данных, к которой я пытаюсь получить доступ, уже создана в mysql ("блог");

1 Ответ

0 голосов
/ 23 декабря 2018

Попробуйте проверить тип аутентификации пользователя в MySQL.

Я только что столкнулся с той же ошибкой при настройке wp на Win 10, PHP 7.3 и MySQL 8.0.13.

Это было полное сообщение об ошибке, которое я получал:

Предупреждение: mysqli_connect (): сервер запросил неизвестный клиенту метод аутентификации [caching_sha2_password] в C: \ inetpub \ wwwroot\ dbtest.php в строке 2

Предупреждение: mysqli_connect (): (HY000 / 2054): сервер запросил неизвестный клиенту метод аутентификации в C: \ inetpub \ wwwroot \ dbtest.php в строке 2 Ошибка:Невозможно подключиться к MySQL.Ошибка отладки: 2054 Ошибка отладки: сервер запросил неизвестный клиенту метод аутентификации

Чтобы решить эту проблему, мне пришлось настроить пользователя MySQL на использование стандартного типа аутентификации.

Здесьсценарий SQL, который я запустил, чтобы решить эту проблему:

ALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass';
...