尝试使用Yii连接到我的数据库时出现此错误
我确定密码和权限是正确的。我如何在这里追查问题?
我正在运行MAMP和最新的Yii。
CDbException
CDbConnection failed to open the DB connection: SQLSTATE[28000] [1045] Access denied for user 'yii'@'localhost' (using password: YES)
/Users/user/Dropbox/localhost/yii/framework/gii/generators/model/ModelCode.php(54)
42 ));
43 }
44
45 public function requiredTemplates()
46 {
47 return array(
48 'model.php',
49 );
50 }
51
52 public function init()
53 {
54 if(Yii::app()->db===null)
55 throw new CHttpException(500,'An active "db" connection is required to run this generator.');
56 $this->tablePrefix=Yii::app()->db->tablePrefix;
57 parent::init();
58 }
59
60 public function prepare()
61 {
62 if(($pos=strrpos($this->tableName,'.'))!==false)
63 {
64 $schema=substr($this->tableName,0,$pos);
65 $tableName=substr($this->tableName,$pos+1);
66 }
答案 0 :(得分:4)
在文件/protected/config/main.php中查找“components”块并根据需要进行更新:
'components'=>array(
'db'=>array(
'connectionString' => 'mysql:host=HOSTNAME;dbname=DBNAME',
'emulatePrepare' => true,
'username' => 'MYSQL_USER',
'password' => 'MYSQL_PASS',
...
(将UC值更改为您的设置)。并阅读these pages。
答案 1 :(得分:1)
确保您已在正确的配置文件中输入数据库信息(在/config
中)。据推测,Gii正在使用main.php
配置文件,因此请确保您没有在console.php
或test.php
中偶然在main.php
上设置数据库凭据。
答案 2 :(得分:0)
如果您确定提供的凭据正确无误,则yii
用户无权从localhost
进行连接。 MySQL身份验证由用户名,密码和主机完成,因此读起来就像其中一个不正确。
答案 3 :(得分:0)
如果您在本地计算机上使用mamp,请确保您的用户名设置为“root”,密码在main.php文件中设置为“root”。默认设置是将密码设置为null,这将导致上述错误。
答案 4 :(得分:0)
确保你在console.php中更改凭据(yiic不会查找main.php,尽管它重复了相同的内容)
答案 5 :(得分:0)
我在这里有工作代码:
OS Ubuntu:
<?php
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=192.168.1.11;dbname=yiidemo',
'username' => 'yiidemo',
'password' => 'yiidemo!23',
'charset' => 'utf8',
];
为我工作: - )
答案 6 :(得分:0)
我有这个问题。
解决了它:
打开文件yii/config/db.php
并为phpmyadmin(密码和名称)添加数据。