PDO 连接 mysql的配置

2020-08-23  本文已影响0人  芒鞋儿

继上次发现那个愚蠢的错误之后,开始对mysql 进行清理。
查了一下相关文档(忘了链接了),mysql有两种安装方式,dmg 和 homebrew, 我的Mac中两个都装了,先把dmg那个卸载了,但是brew安装好像没有解决,两个都安装的情况下相互不会更新。两个都删除了,还是采用dmg 安装。

pdo 连接数据库的配置,以及错误:

class Dbh {
    private $host = "localhost";
    private $user = "root";
    private $pwd = "xxxx";
    private $dbName = "xxxxdb";


    protected function connect() {
        try {
            $dsn = 'mysql:host=' . $this->host . ';dbname=' .$this->dbName;
            $pdo = new PDO($dsn, $this->user, $this->pwd);
            $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

            
        } catch (PDOException $e) {
            print "Error!: " . $e->getMessage() . "<br/>";
            die();
        }
        
        
        
        return $pdo;
    }

出现以下err msg:

SQLSTATE[HY000] [2002] No such file or directory

安装后要在php.ini改一下配置,关于php.ini的文件位置,用以下方式找:

<?php phpinfo(); ?>

从里面找到php.ini 的位置

php.ini 中加入以下配置:

mysql.default_socket=/tmp/mysql.sock
pdo_mysql.default_socket=/tmp/mysql.sock

这里采用默认的mysql.sock 路径,需要自己事先确认一下上面的文件,必须是www 的user具有绝对的access 权限。

修改后重启一下apache, 如果你使用mac 自带的apache, 其位置在/usr/sbin/apachectl

sudo apachectl restart 
上一篇下一篇

猜你喜欢

热点阅读