我刚刚在我的 macbook pro 上安装了 mysql,mysql 似乎可以正常工作,但是我无法通过 mysqli 从 php 连接到 mysql。我不断收到错误。我已经阅读了许多不同的文章和网页,所有这些看起来都很复杂并且无法解决我的问题。
我已将/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。调试errno: 2054 调试错误:服务器请求客户端未知的认证方式
我一直在努力解决这个问题,非常感谢任何帮助,谢谢。 我正在尝试访问的数据库,我已经在 mysql 中创建(“博客”);
最佳答案
尝试检查 MySQL 中的用户身份验证类型。
我刚刚在 Win 10、PHP 7.3 和 MySQL 8.0.13 上设置 wp 时遇到了同样的错误。
这是我收到的完整错误消息:
Warning: mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password] in C:\inetpub\wwwroot\dbtest.php on line 2
Warning: mysqli_connect(): (HY000/2054): The server requested authentication method unknown to the client in C:\inetpub\wwwroot\dbtest.php on line 2 Error: Unable to connect to MySQL. Debugging errno: 2054 Debugging error: The server requested authentication method unknown to the client
为了解决这个问题,我必须将 MySQL 用户设置为使用标准身份验证类型。
这是我为解决问题而运行的 SQL 脚本:
ALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass';
关于PHP 没有通过本地套接字连接到 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50766584/