Ben*_*ine 32 php mysql macos mamp cakephp
关于这一点还有其他一些帖子,但没有一个答案似乎对我有用.
当我导航到本地计算机上的CakePHP页面时,出现一个错误:
Cake无法连接到数据库.数据库连接"Mysql"丢失或无法创建.
当我在home.ctp中运行这个有用的代码时,我收到以下响应:
错误!:SQLSTATE [42000] [1049]未知数据库'test'
但是,我Users/Ben/Sites/myapp/app/Config/database.php看起来像这样(我将MAMP设置为在Users/Ben/Sites中查找文档根目录):
<?php
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'Ben',
'password' => 'mypass',
'database' => 'CV',
);
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个Ben用密码调用的mysql用户,mypass并在其CV下创建了一个名为的数据库.而且,我无法在test任何地方找到数据库.救命?
Dom*_* C. 48
尝试添加套接字:
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
Run Code Online (Sandbox Code Playgroud)
ena*_*gra 20
unix_socket(尤其是对于OS X人员)的替代方案是替换localhost为127.0.0.1
将如下:
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => '127.0.0.1',
'login' => 'user',
'password' => 'password',
'database' => 'database-name',
'prefix' => '',
'encoding' => 'utf8',
);
Run Code Online (Sandbox Code Playgroud)
Kin*_* Jk 11
编辑php.ini并添加:
extension=php_pdo_mysql.dll
Run Code Online (Sandbox Code Playgroud)
然后重新启动Web服务器
小智 9
在Mac上,使用MAMP作为开发平台,正确的解决方案是使用Domingo Casarrubio解决方案.
将unix_socket参数添加到数据库配置中.
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
Run Code Online (Sandbox Code Playgroud)
小智 6
如果您的连接数据库用户没有适当的权限,也可能导致此错误.我相信你只需要最少的INSERT,SELECT,UPDATE和DELETE.
始终首先检查用户名/密码和用户权限,因为CakePHP很可能会给出模糊的数据库连接错误.
小智 5
我遇到了同样的问题,最终发现这是由于 CakePhp 不接受我使用带有密码的用户造成的,即使该用户是在 PHPMyAdmin 中创建的。我必须使用没有密码的用户“root”。
我在对文件/lib/Cake/Error/exceptions.php进行以下更改后发现了这一点。
原来的行:
protected $_messageTemplate = 'Database connection "%s" is missing, or could not be created.';
Run Code Online (Sandbox Code Playgroud)
改为这样(注意从单引号到双引号的更改):
protected $_messageTemplate = "Database connection \"%s\" is missing, or could not be created:\n %s";
Run Code Online (Sandbox Code Playgroud)
这将为您提供问题的原因,以便您可以正确地更改原因。
小智 5
我注意到你一年前曾问过这个问题,而且很可能现在已经解决了这个问题.但是,对于那些在尝试在XAMPP上安装CakePHP时遇到相同问题的人,您所要做的就是将"登录"更改为"root",即XAMPP的默认登录名,并将"密码"保留为"",即空白.database.php文件中的完整代码应如下所示:
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'ckblog',//replace with your own database name
'prefix' => '',
//'encoding' => 'utf8',
);
Run Code Online (Sandbox Code Playgroud)
而已.
| 归档时间: |
|
| 查看次数: |
61652 次 |
| 最近记录: |