mysql的Php连接问题-macbook pro
我有一个问题,当我想将我的PHP代码连接到我的数据库时,这个错误显示在图片中 但是当我通过终端连接我的数据库时,这是有效的mysql的Php连接问题-macbook pro,php,mysql,macos,pdo,Php,Mysql,Macos,Pdo,我有一个问题,当我想将我的PHP代码连接到我的数据库时,这个错误显示在图片中 但是当我通过终端连接我的数据库时,这是有效的 你可以选择更干净的版本 $host = DB_HOST; // just ignore constants // $user = DB_USER; $pass = DB_PASS; $dbname = DB_NAME; $dsn = 'mysql:host=' . $host . ';dbname=' . $dbname
你可以选择更干净的版本
$host = DB_HOST; // just ignore constants //
$user = DB_USER;
$pass = DB_PASS;
$dbname = DB_NAME;
$dsn = 'mysql:host=' . $host . ';dbname=' . $dbname;
// Set options
$options = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
// Create a new PDO instanace
try{
new PDO($dsn, $user, $pass, $options);
}
// Catch any errors
catch(PDOException $e){
echo $e;
}
如果这不起作用,那么这里您可以使用Mysql驱动程序的可能副本将localhost
替换为本地unix套接字的假定路径,而本地unix套接字在Mac上似乎不存在。改为使用127.0.0.1
以便它实际使用TCP堆栈。当我使用127.0.0.1更改localhost时,会出现以下错误消息:PDO::_construct():服务器请求的身份验证方法对/Users/mac/Desktop/test中的客户端未知[caching_sha2_password]。php:11堆栈跟踪:#0/Users/mac/Desktop/test.php(11):PDO->uu构造('mysql:host=127….','root','FriZerX11')#1{main}下一个PDO异常:SQLSTATE[HY000][2054]服务器请求的身份验证方法在/Users/mac/Desktop/test.php中客户端未知。php:11堆栈跟踪:#0/Users/mac/Desktop/test.php(11):PDO->u构造('mysql:host=127….','root','FriZerX11'){main}@AflaYoussef在公共论坛上展示你的证书时要小心。您可能需要在mysql用户表中创建与PDO连接字符串匹配的“root”@“127.0.0.1”。你应该在这里找到如何做到这一点没有问题。另外:在发布任何类似问题时(尤其是针对苹果),了解操作系统版本以及安装软件时使用的方法会更为有用。不要解决OP的问题,而只是提供另一种方法来解决同一问题。
$host = DB_HOST; // just ignore constants //
$user = DB_USER;
$pass = DB_PASS;
$dbname = DB_NAME;
$dsn = 'mysql:host=' . $host . ';dbname=' . $dbname;
// Set options
$options = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
// Create a new PDO instanace
try{
new PDO($dsn, $user, $pass, $options);
}
// Catch any errors
catch(PDOException $e){
echo $e;
}