Ошибка подключения к базе данных в Yii

#yii

#yii

Вопрос:

Я просматриваю руководство Yii по созданию блога и следую инструкциям. Для базы данных я только что импортировал тестовую базу данных. Все было прекрасно.

Когда я установил соединение с базой данных в main.php отображается следующая ошибка:

CDbConnection не удалось открыть подключение к БД: SQLSTATE[42000] [1049] Неизвестная база данных ‘myblog’

Массив подключений к базе данных в main.php является:

 //'db'=>array(
//  'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
//),
// uncomment the following to use a MySQL database

'db'=>array(
    'connectionString' => 'mysql:host=localhost;dbname=myblog',
    'emulatePrepare' => true,
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8',
    'tablePrefix' => 'ia_',
),
  

Что я делаю не так?

Комментарии:

1. Можете ли вы подключиться к базе данных с помощью инструмента командной строки MySQL?

2. есть ли в вашем mysql база данных с именем «myblog»? И является ли ваш пароль пользователя mysql root на самом деле «root»?? Пожалуйста, проверьте это еще раз. Системы Linux / Unix также чувствительны к регистру имен баз данных…

Ответ №1:

Вы следите за этим руководством по Yii Blog?

http://www.yiiframework.com/doc/blog/1.1/en/prototype.database

Вы используете базу данных MySQL или просто SQLite? Имя базы данных — blog, а не мой блог на этой странице.

Совет: Если вы хотите использовать MySQL вместо SQLite для хранения данных, вы можете создать базу данных MySQL с именем blog, используя инструкции SQL в /wwwroot/yii/demos/blog/protected/data/schema.mysql.sql. Затем измените конфигурацию приложения следующим образом,

 return array(
    ......
    'components'=>array(
        ......
        'db'=>array(
            'connectionString' => 'mysql:host=localhost;dbname=blog',
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
            'tablePrefix' => 'tbl_',
        ),
    ),
  ......
);
  

Ответ №2:

обратите внимание на следующую ошибку, пока существует ваша база данных! SQLSTATE[42000] [1049] Тест неизвестной базы данных:host=localhost

проблема в коде php

Неправильный код

$pdo = новый PDO(‘mysql:host=localhost:dbname=shenakht’, «мехди», «1»);

Правильный код

$pdo = новый PDO(‘mysql:host=localhost;dbname=shenakht’, «мехди», «1»);

Разница между: и ;

если ваш код верен, перейдите к http://localhost/phpmyadmin и создайте базу данных!