按照官方教程使用高级版yii框架时,找不到已创建的数据库:
Administrator@DEEP-1908172234 MINGW64 /c/wamp64/www/yiiadvanced
$ php yii migrate
Yii Migration Tool (based on Yii v2.0.34)
Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [1049] Unknown databa
se 'blogdemo2db''
in C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\db\Connection.php:635
Stack trace:
#0 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\db\Connection.php(1020): yii\db
\Connection->open()
#1 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\db\Connection.php(1007): yii\db
\Connection->getMasterPdo()
#2 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\db\Command.php(255): yii\db\Con
nection->getSlavePdo()
#3 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\db\Command.php(1154): yii\db\Co
mmand->prepare(true)
#4 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\db\Command.php(401): yii\db\Com
mand->queryInternal('fetchAll', NULL)
#5 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\db\mysql\Schema.php(319): yii\d
b\Command->queryAll()
#6 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\db\mysql\Schema.php(125): yii\d
b\mysql\Schema->findColumns(Object(yii\db\TableSchema))
#7 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\db\Schema.php(754): yii\db\mysq
l\Schema->loadTableSchema('migration')
#8 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\db\Schema.php(193): yii\db\Sche
ma->getTableMetadata('{{%migration}}', 'schema', true)
#9 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\console\controllers\MigrateCont
roller.php(211): yii\db\Schema->getTableSchema('{{%migration}}', true)
#10 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\console\controllers\BaseMigrat
eController.php(875): yii\console\controllers\MigrateController->getMigrationHis
tory(NULL)
#11 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\console\controllers\BaseMigrat
eController.php(167): yii\console\controllers\BaseMigrateController->getNewMigra
tions()
#12 [internal function]: yii\console\controllers\BaseMigrateController->actionUp
(0)
#13 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\base\InlineAction.php(57): cal
l_user_func_array(Array, Array)
#14 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\base\Controller.php(157): yii\
base\InlineAction->runWithParams(Array)
#15 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\console\Controller.php(164): y
ii\base\Controller->runAction('', Array)
#16 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\base\Module.php(528): yii\cons
ole\Controller->runAction('', Array)
#17 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\console\Application.php(180):
yii\base\Module->runAction('migrate', Array)
#18 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\console\Application.php(147):
yii\console\Application->runAction('migrate', Array)
#19 C:\wamp64\www\yiiadvanced\vendor\yiisoft\yii2\base\Application.php(386): yii
\console\Application->handleRequest(Object(yii\console\Request))
#20 C:\wamp64\www\yiiadvanced\yii(23): yii\base\Application->run()
#21 {main}
原因是:mysql使用的端口号是3308,不是默认的3306
修改C:\wamp64\www\yiiadvanced\common\config\main-local.php中的数据库设置:在host中加入端口号
<?php
return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost:3308;dbname=blogdemo2db',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => true,
],
],
];