PHP 没有通过本地套接字连接到 MYSQL

标签 php mysql sql mysqli localhost

我刚刚在我的 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/

相关文章:

java - 无法在 Jboss 7.1.1 中创建 mysql 数据源

mysql - mysql表id的默认值

mysql - SQL 统计字段中的单词数

php - 需要帮助来克服与 PHP 5.3 设置的某些行为依赖项的不兼容性

php - API Platform v1.1.1 & Symfony 3.2.8 composer 冲突

mysql - 如何创建初始化的 MySQL Docker 镜像?

mysql - Mysql中简单查询速度慢

具有多个过滤器的一对多关系的SQL查询

php - Laravel 5.1 中未定义的默认命名空间

PHP 生成 00 - 29 之间的随机数