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