繁体   English   中英

CakePHP:无法访问MySQL数据库

[英]CakePHP: Can't access MySQL database

我是CakePHP的新手,我刚刚完成了配置过程,但我很困难为什么Cake无法访问我的MySQL数据库。 Cake信息页面说我的tmp目录是可写的,FileEngine用于缓存(不知道这意味着什么),并且我的数据库配置文件存在,但CakePHP无法连接到数据库。

以下是我的设置详情:

  • PHP 5.3(预装在Snow Leopard上)
  • MySQL 5.1.40 64位
  • CakePHP 1.2.4.8284

以下是我经历的步骤:

  • 创建了一个名为cake_blog的MySQL模式
  • 创建了一个名为cake_blog_user的MySQL用户
  • 授予cake_blog_user对cake_blog @ localhost和cake_blog @%的适当权限
  • 将database.php.default文件复制到database.php并根据需要编辑数据库连接详细信息

以下是来自database.php的相关配置数据:

var $default = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'cake_blog_user',
        'password' => 'cake_blog_password',
        'database' => 'cake_blog',
        'prefix' => '',
    );

我在这里错过了什么吗? 我还要提一下,如果我插入一个echo mysql_error(); 在测试数据库连接之前进入/cake/libs/view/pages/home.ctp文件,显示的错误是“没有这样的文件或目录”。 我不知道它在说什么文件或目录。

谢谢!

通常咬我的是MySQL认为'localhost'为'通过unix socket连接'和'127.0.0.1''通过TCP端口连接'。 对于XAMPP(至少在mac上)这样的东西,unix套接字文件就不存在了。 只需使用127.0.0.1即可

var $default = array(
    'driver' => 'mysql',
    'persistent' => false,
    'host' => '127.0.0.1',
    'login' => 'cake_blog_user',
    'password' => 'cake_blog_password',
    'database' => 'cake_blog',
    'prefix' => '',
);

应该一直工作。

如果是套接字,只需编辑/etc/php.ini以反映以下内容

pdo_mysql.default_socket=/tmp/mysql.sock

mysql.default_socket = /tmp/mysql.sock

我相信你也可以做到以下几点

<?php
    public $default = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'cake_blog_user',
        'password' => 'cake_blog_password',
        'database' => 'cake_blog',
        'prefix' => '',
        'port' => '/tmp/mysql.sock',            
    )
?>

这样做可能意味着当您在生产服务器上运行时需要编辑database.php文件。

谢谢大家指点我正确的方向。 该文件的mysql.sock已经被移动到/tmp/mysql.sock以代替其默认位置/var/mysql/mysql.sock 编辑php.ini文件以反映这一点已经解决了问题。

检查你的phpinfo并使用列出的套接字。 这对我有用。

在Ubuntu上,如果你安装了7.0和5.6版本的PHP,这将不起作用。

如果你有两个版本,你需要切换:

首先看看是否是7.0版本:命令是php -v

接下来呢

sudo a2dismod php7.0
sudo a2enmod php5.6
sudo service apache2 restart

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM