使用docker-compose编写常规的lnmp容器,pdo连接mysql失败。
问题的核心是yii2 是通过pdo的方式去连接数据的。但是我们通过容器去搭建lnmp环境时,nginx , php , mysql 这三个服务是独立的三个容器,彼此隔离。所以在yii2中连接mysql服务器的时候不能写"localhost" 或者 "127.0.0.1"等主机,而是你的容器名
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a8c025a080f5 nginx:latest "nginx -g 'daemon of…" 2 weeks ago Up 15 minutes 0.0.0.0:80->80/tcp nginx fafd4fd5c5e1 mysql:5.7 "docker-entrypoint.s…" 2 weeks ago Up 15 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql 005721049e99 php:7.2-fpm "docker-php-entrypoi…" 2 weeks ago Up 15 minutes 0.0.0.0:9000->9000/tcp php
我的mysql 容器的容器名就叫mysql
那么我们yii2中的配置文件就应该如下写:
return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=mysql;dbname=test', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', ];
说明:
mysql:host=mysql 中的第二个mysql 就是容器名。因为我的mysql容器的名字就叫mysql , 所以此次的第二个参数就变成了mysql了。
相关推荐
CoderToy 2020-11-16
emmm00 2020-11-17
王艺强 2020-11-17
ribavnu 2020-11-16
bianruifeng 2020-11-16
wangshuangbao 2020-11-13
苏康申 2020-11-13
vivenwan 2020-11-13
moyekongling 2020-11-13
云中舞步 2020-11-12
要啥自行车一把梭 2020-11-12
aydh 2020-11-12
kuwoyinlehe 2020-11-12
minerk 2020-11-12
vitasfly 2020-11-12
jazywoo在路上 2020-11-11
敏敏张 2020-11-11
世樹 2020-11-11