my homestead docker容器中缺少Mysql套接字
我的应用程序有此问题 SQLSTATE[HY000][2002]无法通过连接到本地MySQL服务器 套接字'/var/run/mysqld/mysqld.sock'(2) 我正在使用2个docker容器来托管我的Laravel4.2(我想是:o) 这是我的docker-compose.ymlmy homestead docker容器中缺少Mysql套接字,mysql,docker,laravel-4,Mysql,Docker,Laravel 4,我的应用程序有此问题 SQLSTATE[HY000][2002]无法通过连接到本地MySQL服务器 套接字'/var/run/mysqld/mysqld.sock'(2) 我正在使用2个docker容器来托管我的Laravel4.2(我想是:o) 这是我的docker-compose.yml web: image: shincoder/homestead:php5.6 restart: always ports: - "8000:80" # web - "2222:22" # s
web:
image: shincoder/homestead:php5.6
restart: always
ports:
- "8000:80" # web
- "2222:22" # ssh
- "35729:35729" # live reload
- "9876:9876" # karma server
volumes:
- ~/.composer:/home/homestead/.composer # composer caching
- ~/.gitconfig:/home/homestead/.gitconfig # Git configuration ( access alias && config )
- ~/.ssh:/home/homestead/.ssh # Ssh keys for easy deployment inside the container
- ~/apps:/apps # all apps
- ~/apps/volumes/nginx/sites-available:/etc/nginx/sites-available # nginx sites ( in case you recreate the container )
- ~/apps/volumes/nginx/sites-enabled:/etc/nginx/sites-enabled # nginx sites ( in case you recreate the container )
links:
- mariadb
mariadb:
image: tutum/mariadb
restart: always
ports:
- "33060:3306"
environment:
MARIADB_USER: admin # cannot be changed ( for info. only )
MARIADB_PASS: root
volumes:
- ~/apps/volumes/mysql:/var/lib/mysql # database files
第一个是带有php5.6的homesteaddocker_web_1,第二个是homesteaddocker_mariadb_1。
我在homesteaddocker_web_1中搜索了mysql套接字,但它不在那里,但我在第二个容器(homesteaddocker_mariadb_1)中找到了它
那么我该如何解决这个问题呢。Docker容器通过网桥联网 要使一个容器与另一个容器通信,您需要链接它们:
如果您的容器需要访问本地网络上的网络资源,您可能希望在docker run命令中使用
--network='host'
。我更困惑的是,我用docker compose文件更新了我的问题。我以为您是在试图访问主机上运行的数据库。所以,我的错。现在,您的连接字符串是什么样子的?您不应该公开mariadb端口(除非您需要从外部使用),您应该连接到mariadb:3306@MrEI可以通过mysql workbench使用这些凭据(主机:127.0.0.1,端口:33060,用户名和密码)访问我的数据库,并且工作正常。是my laravel应用程序无法通过套接字连接到本地MySQL服务器。请尝试进入容器,看看是否可以ping/访问另一个容器。docker exec-it/bin/sh