从 Table Plus 连接到我的本地 docker 数据库实例
Connecting to my local docker Database Instance from Table Plus
我创建了一个本地 docker wordpress 实例,我正在尝试使用 SQL 客户端(在我的例子中是 TablePlus)连接到数据库,但我遇到了问题。
我从此处显示的 docker-compose.yml 文件创建了 docker 容器:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8028:80"
- "8029:8029"
volumes:
- ./themes/travelmatic:/var/www/html/wp-content/themes/yadayada
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
VIRTUAL_HOST: leasepilot.local
volumes:
db_data:
我在这些领域尝试过 wordpress 和 somewordpress 的任何组合:
我也可以选择通过 SSH 连接,但我觉得我不需要这样做?
1) 调试此类问题的最佳方法是什么?
2)信用是什么?哈哈
正如 David 在他的评论中建议的那样,您需要在 docker-compose.yml 中添加端口映射。因此,您修改后的 docker-compose.yml 将是这样的:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
ports:
- "3306:3306"
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8028:80"
- "8029:8029"
volumes:
- ./themes/travelmatic:/var/www/html/wp-content/themes/yadayada
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
VIRTUAL_HOST: leasepilot.local
volumes:
db_data:
并且您已经在环境变量 docker-compose.yml 中提供了信用。
还有一点信息应该添加到 Praveen 的回答中。
如果您已经 mysql 在本地安装,请在 computer/laptop 上将数据库端口设置为:
- "3306:3306"
它不会工作,因为 TablePlus 将连接到您的本地 mysql 实例。
相反,您应该在不同的已发布端口上设置 Docker mysql 并从 TablePlus 访问它。
例如,在您的 Docker 文件中设置这些端口(发布的端口为 3356):
"3356:3306"
然后在TablePlus上设置相同的端口:
我创建了一个本地 docker wordpress 实例,我正在尝试使用 SQL 客户端(在我的例子中是 TablePlus)连接到数据库,但我遇到了问题。
我从此处显示的 docker-compose.yml 文件创建了 docker 容器:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8028:80"
- "8029:8029"
volumes:
- ./themes/travelmatic:/var/www/html/wp-content/themes/yadayada
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
VIRTUAL_HOST: leasepilot.local
volumes:
db_data:
我在这些领域尝试过 wordpress 和 somewordpress 的任何组合:
我也可以选择通过 SSH 连接,但我觉得我不需要这样做?
1) 调试此类问题的最佳方法是什么? 2)信用是什么?哈哈
正如 David 在他的评论中建议的那样,您需要在 docker-compose.yml 中添加端口映射。因此,您修改后的 docker-compose.yml 将是这样的:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
ports:
- "3306:3306"
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8028:80"
- "8029:8029"
volumes:
- ./themes/travelmatic:/var/www/html/wp-content/themes/yadayada
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
VIRTUAL_HOST: leasepilot.local
volumes:
db_data:
并且您已经在环境变量 docker-compose.yml 中提供了信用。
还有一点信息应该添加到 Praveen 的回答中。 如果您已经 mysql 在本地安装,请在 computer/laptop 上将数据库端口设置为:
- "3306:3306"
它不会工作,因为 TablePlus 将连接到您的本地 mysql 实例。 相反,您应该在不同的已发布端口上设置 Docker mysql 并从 TablePlus 访问它。
例如,在您的 Docker 文件中设置这些端口(发布的端口为 3356):
"3356:3306"
然后在TablePlus上设置相同的端口: