有使用docker做开发环镜的吗 ? [ 2.0 版本 ]
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=127.0.0.1;dbname=data',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8mb4',
为什么 这样子配置会出事服务器连接不上数据库的状态 ?
Database Exception – yii\db\Exception
SQLSTATE[HY000] [2002] Connection refused
↵
Caused by: PDOException
SQLSTATE[HY000] [2002] Connection refused
alex.kevin 补充于 2016-12-12 14:06
用起来方便
alex.kevin 补充于 2016-12-13 18:12
@ymfhack 不能用 算了 我自装一个虚拟机了
最佳答案
-
dingaifeng 发布于 2016-12-15 16:46 举报
这是因为docker里面并没有安装数据库,127.0.0.1是docker容器里面的地址,使用这样的配置信息会找不到数据库,你需要填写你本机的ip地址,访问你本机的数据库,你可以使用ifconfig获取你本地的IP地址,假如是10.1.192.21,然后在配置文件中这样写
'dsn' => 'mysql:host=10.1.192.21;dbname=data',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8mb4',
这样docker容器里面的网站就可以访问你本机的数据库了共 1 条回复彭于晏 觉得很赞
其他 7 个回答
-
-
-
-
-
-
-
services: mysql: image: "mysql:5.7.31" container_name: app_mysql restart: always ports: - '3306' volumes: - /etc/localtime:/etc/localtime:ro - ./mysql/sql:/docker-entrypoint-initdb.d - ../../database/mysql:/var/lib/mysql - ../../logs/mysql:/var/log/mysql environment: MYSQL_ROOT_PASSWORD: 123456 command: --sql-mode="" --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci # --innodb-buffer-pool-size=64M networks: network: aliases: - com.app.mysql web: #build: . image: "php:7.4-apache" container_name: app_web restart: always ports: - "80:80" #- "443:443" volumes: - /etc/localtime:/etc/localtime:ro - ../../wwwroot:/app networks: network: aliases: - com.app.web depends_on: - mysql networks: network: driver: bridge```
两个容器处于同一网络,可以使用以下别名:
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=com.app.mysql;dbname=data',
'username' => 'root',
'password' => '123456',
'charset' => 'utf8mb4',`
alex.kevin
注册时间:2015-05-20
最后登录:2022-08-20
在线时长:15小时23分
最后登录:2022-08-20
在线时长:15小时23分
- 粉丝4
- 金钱1185
- 威望0
- 积分1335