无法在CakePHP中使用MySQL

时间:2012-03-05 22:18:05

标签: mysql cakephp installation pdo osx-lion

这是我第一次安装框架,我很无能为力。

我在OSX 10.7上,我将cakephp框架加载到/Library/WebServer/Documents/cakephp,我已经能够加载测试页面并摆脱一些错误和警告。现在我正试图解决这个问题

  Warning (2): PDO::__construct() [pdo.--construct]: [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) [CORE/Cake/Model/Datasource/Database/Mysql.php, line 160]
  Cake is NOT able to connect to the database.
  Database connection "SQLSTATE[HY000] [2002] No such file or directory" is missing, or could not be created.

我真的不知道该怎么做。我已经安装了MySQL。 MySQL PDO是否默认安装在OSX上?或者我需要安装吗?如果这似乎是问题,我该如何检查是否已安装。

更新:

启用PDO Mysql驱动程序。 此外,pro_mysql的phpinfo()如下所示:

 Directive                     Local Value               Master Value
 pdo_mysql.default_socket   /var/mysql/mysql.sock   /var/mysql/mysql.sock 

但是mysql目录没有出现在我的文件系统中。我应该创建它吗?或者我是否需要在某处改变这条道路?

更新: 我认为问题是我实际上没有建立数据库。我愚蠢的是不要设置数据库。

我想我现在会尝试解决这个问题。

更新:

最终解决这个问题的是,蛋糕正在寻找/var/mysql/mysql.sock中数据库的Unix套接字,但mysql正在使用/tmp/mysql.sock中的套接字 我通过创建从/var/mysql/mysql.sock/tmp/mysql.sock的符号链接来修复此问题。

2 个答案:

答案 0 :(得分:2)

看起来更像是MySQL本身未安装,但PDO库是使用您的网络服务器编译的。我不确定如何在OSX中查看此内容,但您可以尝试勾选此链接:http://www.sequelpro.com/docs/Install_MySQL_on_Mac_OS_X

修改

登录MySQL(mysql -u root -p)并创建数据库:

create database cakephp

然后创建一个新的用户名/密码并授予他们访问此数据库的权限。假设您要创建用户名cakephp和密码cakepass:

GRANT ALL ON cakephp.* TO cakephp@localhost IDENTIFIED BY 'cakepass';
FLUSH PRIVILEGES;

现在你的database.php配置文件应如下所示:

<?php
class DATABASE_CONFIG {
    public $default = array(
        'datasource'  => 'Database/Mysql',
        'persistent'  => false,
        'host'        => 'localhost',
        'login'       => 'cakephp',
        'password'    => 'cakepass',
        'database'    => 'cakephp',
        'prefix'      => ''
    );
}

答案 1 :(得分:0)

不,MySQL不附带OSX,你必须安装它。

最简单的解决方案是使用XAMPP而不是自己编译/安装MySQL。如果您不想使用本机OSX版本,它还将附带一个单独的Apache和PHP。