mysql的php连接问题-macbook pro

Posted

技术标签:

【中文标题】mysql的php连接问题-macbook pro【英文标题】:Php connection problem with mysql - macbook pro 【发布时间】:2019-06-30 21:01:06 【问题描述】:

我有一个问题,当我想将我的 php 代码连接到我的数据库时,这个错误显示在图片中 但是当我通过终端连接我的数据库时,这是正常的

https://i.imgur.com/cpIzV9E.png

<?php

$host='localhost';
$db='canda';
$user='root';
$pass='123456789';

try
    new PDO("mysql:host=".$host
                ."; dbname=".$db,
                $user, $pass);
catch (PDOException $e) 
    echo $e;

PDOException: SQLSTATE[HY000] [2002] /Users/mac/Desktop/test.php:11 中没有这样的文件或目录 堆栈跟踪:#0 /Users/mac/Desktop/test.php(11): PDO ->__construct('mysql:host=loca...', 'root', 'password') #1 main

【问题讨论】:

PDOException: SQLSTATE[HY000] [2002] No such file or directory的可能重复 Mysql 驱动程序将 localhost 替换为本地 unix 套接字的假定路径,这似乎在 Mac 上不存在。改用127.0.0.1,所以它实际上使用了TCP堆栈。 当我将 localhost 更改为 127.0.0.1 时出现此错误消息 PDOException: PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] in /Users/mac/Desktop/ test.php:11 堆栈跟踪:#0 /Users/mac/Desktop/test.php(11): PDO->__construct('mysql:host=127....', 'root', 'FriZerX11') # 1 main Next PDOException: SQLSTATE[HY000] [2054] 服务器在 /Users/mac/Desktop/test.php:11 中请求客户端未知的身份验证方法 堆栈跟踪:#0 /Users/mac/Desktop/test。 php(11): PDO->__construct('mysql:host=127....', 'root', 'FriZerX11') #1 main @AflaYoussef 小心在公共论坛上显示您的凭据。您可能需要在与 PDO 连接字符串匹配的 mysql 用户表中创建 'root'@'127.0.0.1'。你应该在这里找到如何做到这一点没问题。另外:当发布任何类似的问题时(尤其是与 Apple 的问题),了解操作系统版本以及您用于安装导致问题的软件的方法会更有用。 【参考方案1】:

那里有更清洁的版本;

 $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;
    

如果这不起作用,那么你去pdoexception-sqlstatehy000-2002-no-such-file-or-directory

【讨论】:

没有解决 OP 的问题,只是提供了另一种方式来偶然发现同一问题。

以上是关于mysql的php连接问题-macbook pro的主要内容,如果未能解决你的问题,请参考以下文章

macbook pro 登不上qq先生连接超时

macbook pro 串口转USB 无法显示和输入

如何在Macbook Pro搭建PHP开发环境

苹果手机13pro m能和macbook蓝牙连接吗

ModuleNotFoundError:M1 Macbook pro 中没有名为“mysql”的模块

macbook pro 怎样删除usb驱动