php未通过本地套接字连接到mysql

nfs0ujit  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(268)

我刚刚把mysql安装到macbookpro上,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。调试错误号:2054调试错误:服务器请求的身份验证方法客户端未知
我想弄清楚这件事已经很久了,任何帮助都将不胜感激,谢谢。我试图访问的数据库,我已经在mysql中创建(“blog”);

pzfprimi

pzfprimi1#

尝试在mysql中检查用户身份验证类型。
在win10、php7.3和mysql 8.0.13上设置wp时,我遇到了同样的错误。
这是我收到的完整错误信息:
警告:mysqli \u connect():服务器请求了客户端未知的身份验证方法[caching \u sha2 \u password],位于c:\inetpub\wwwroot\dbtest.php的第2行
警告:mysqli_connect():(hy000/2054):服务器在第2行的c:\inetpub\wwwroot\dbtest.php中请求了客户端未知的身份验证方法错误:无法连接到mysql。调试错误号:2054调试错误:服务器请求的身份验证方法客户端未知
为了解决这个问题,我必须将mysql用户设置为使用标准身份验证类型。
以下是我为解决此问题而运行的sql脚本:

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

相关问题