php - 使用 Abyss Web Server 实现 MySQL 时如何修复 HY000/2054?
问题描述
我正在使用 Abyss X1 启动一个 Web 服务器,并尝试使用以下两个脚本通过 PHP 实现一个 MySQL 服务器:
连接数据库.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' );
和
要求.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():第 6 行 /Applications/Abyss Web Server/connect_db.php 中的服务器请求客户端未知的身份验证方法 [caching_sha2_password]”
“警告:mysqli_connect():(HY000/2054):服务器在第6行的/Applications/Abyss Web Server/connect_db.php中请求客户端未知的身份验证方法服务器请求客户端未知的身份验证方法”
我正在按照一本我知道已经过时的书的说明进行操作,但直到现在我都能解决所有问题。我还读到它与 MySQL 更新和实现 sha2 有关,而 PHP 仍然没有?我正在为我的 compsci 课程做这个,所以我很感激我能得到的所有帮助。
谢谢!
解决方案
改变用户
ALTER USER 'mysqluser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlpassword';
或使用
shell>mysql --default-auth=mysql_native_password