Почему Yii2 не может подключиться к MySQL, а обычный PDO подключается?
Проект в контейнерах nginx + php-fpm + mysql. Захожу в контейнер php-fpm и без проблем подключаюсь к базе, которая в контейнере mysql.
mysql -h mysql -u test -p
В конфиге Yii2 стандартное подключение к БД.
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=mysql;port=3306;dbname=test',
'username' => 'test',
'password' => 'test',
'charset' => 'utf8',
],
При выполнении миграций из контейнера php-fpm получаю ошибку
Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [2002] No such file or directory'
При этом, если попытаться подключиться к БД не через фреймворк, то подключение есть и можно выполнять запросы.
$dbh = new PDO('mysql:host=mysql;port=3306;dbname=test', 'test', 'test');
} catch (PDOException $e) {
die($e->getMessage());
}
$stmt = $dbh->query("show tables");
while ($row = $stmt->fetch())
{
echo '<pre>';
print_r($row);
}
Yii2 самый новый, версия 2.0.34 и я полагаю, что тут дело именно в коннекте с помощью классов фреймворка.
Вот настройки докер композа для mysql
mysql:
image: mysql:8
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
- MYSQL_ROOT_PASSWORD=${IPW_MYSQL_DB_PASSWORD_ROOT}
- MYSQL_DATABASE=${IPW_MYSQL_DB_NAME}
- MYSQL_USER=${IPW_MYSQL_DB_USER}
- MYSQL_PASSWORD=${IPW_MYSQL_DB_PASSWORD}
ports:
- ${IPW_MYSQL_PORT}:3306
volumes:
- mysqlData:/var/lib/mysql
Пожалуйста, подскажите где я делаю не так? Кажется уже все варианты перепробовал. С портами и без портов, с разными версиями mysql...