Я запускаю веб-сервер с использованием Abyss X1 и просто попытался реализовать сервер MySQL через PHP с помощью следующих двух сценариев:
connect_db.php:
#Connect on 'localhost' for user 'admin'
#with password 'RoboticCowboy2019' to database 'site_db'.
$dbc = mysqli_connect
( 'localhost' , 'admin', 'password', 'site_db' )
OR die
( mysqli_connect_error() );
#Set encoding to match PHP script encoding.
mysqli_set_charset($dbc, 'utf8' );
а также
require.php:
#Incorporate the MySQL connection script.
require ('../connect_db.php');
#Display MySQL version and host.
if(mysqli_ping($dbc)){
echo 'MySQL Server'.mysqli_get_server_info($dbc).'on'.mysqli_get_host_info($dbc);
}
Тем не менее, когда я иду в Http: //localhost/require.php, Я получаю эти ошибки:
«Предупреждение: mysqli_connect (): сервер запросил неизвестный клиенту метод аутентификации [caching_sha2_password] в / Applications / Abyss Web Server / connect_db.php в строке 6»
«Предупреждение: mysqli_connect (): (HY000 / 2054): сервер запросил неизвестный клиенту метод аутентификации в / Applications / Abyss Web Server / connect_db.php в строке 6
Сервер запросил метод аутентификации, неизвестный клиенту
Я следую инструкциям книги, которая, как я знаю, устарела, но до сих пор мне удавалось обойти каждую проблему. Я также читал, что это как-то связано с обновлением MySQL и реализацией sha2, в то время как PHP все еще этого не делает? Я делаю это для своего класса compsci, поэтому я был бы признателен за любую помощь, которую я могу получить.
Спасибо!
Изменить пользователя
ALTER USER 'mysqluser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlpassword';
или использовать
shell>mysql --default-auth=mysql_native_password
Других решений пока нет …