Docker MySQL连接DBeaver

问题描述 投票:0回答:1

我刚刚在youtube上完成了这个Docker教程:

https://www.youtube.com/watch?v=SXY0MLHP3hA&lc=Ugzp3vKtSOp0rn2lYyd4AaABAg

我能够为PHP和MySQL创建几个Docker容器。文件结构如下:

>Docker_PHP_MySQL
 >DB
   -Dockerfile
 >src
   -index.php
 >www
   -Dockerfile
 development.env
 docker-compose.yml

DB Dockerfile:

FROM mysql:8.0

index.php文件:

<?php
$mysqli = new mysqli('tut07-db', getenv('MYSQL_USER'), getenv('MYSQL_PASSWORD'), 'information_schema');
if($mysqli->connect_error) 
{
  echo 'Connection Error [', $mysqli->connect_errno, ']: ', $mysqli->connect_error;
} 
else 
{
  echo 'MySQLi Connected Successfully!';
}
?>

www Dockerfile:

FROM php:7.2-apache

RUN docker-php-ext-install mysqli
RUN docker-php-ext-enable mysqli

这是development.env文件:

MYSQL_USER=sys_admin
MYSQL_PASSWORD=sys_password
MYSQL_ROOT_PASSWORD=root_password

最后,docker-compose.yml文件:

version: "3"

networks:
  tut07-frontend:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.10.1.0/24
  tut07-backend:
    driver: bridge
    ipam: 
      driver: default
      config:
        - subnet: 172.10.2.0/23

services:
  tut07-db:
    build: ./db
    command: --default-authentication-plugin=mysql_native_password
    ports:
      - 3306:3306
    networks:
      tut07-backend:
        ipv4_address: 172.10.3.2
    env_file:
      - ./development.env
  tut07-www:
    build: ./www
    ports:
      - 8080:80
    volumes:
      - ./src:/var/www/html/
    networks:
      tut07-backend:
        ipv4_address: 172.10.2.2
      tut07-frontend:
        ipv4_address: 172.10.1.2
    depends_on:
      - tut07-db
    env_file:
      - ./development.env

现在我知道我完全失明了...

在dbeaver中,我正在尝试建立连接:

enter image description here

但是当我测试连接时,我收到以下响应:

enter image description here

我该如何解决这个问题?

mysql docker docker-compose dbeaver dbconnection
1个回答
1
投票

而不是在dbeaver中将localhost_compliant-db作为服务器主机,尝试给它localhost

3306端口也在主机上绑定,因此主机上的localhost:3306应该可以工作。

PS - 我认为dbeaver和docker compose堆栈都在同一台机器上。如果没有,您需要将localhost_compliant-db映射到主机可以理解的某些IP。

© www.soinside.com 2019 - 2024. All rights reserved.