Docker MySQL连接DBeaver

2023-12-22

我刚刚完成了 YouTube 上的 Docker 教程:

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

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

数据库 Dockerfile:

FROM mysql:8.0

索引.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 中,我尝试建立连接:

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

我该如何解决这个问题?


对于那些在不同机器上运行数据库的人,您可以执行以下操作:

首先,从容器所在的位置运行docker ps获取容器详细信息,包括Container ID

[root@test-001 ~]# docker ps 
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                    NAMES
1b02333fb3b9        tutum/nginx              "/usr/sbin/nginx"        6 weeks ago         Up 7 days           0.0.0.0:80->80/tcp       docker_nginx_1
8c1d234a3731        mariadb                  "docker-entrypoint.s…"   6 weeks ago         Up 7 days           0.0.0.0:3306->3306/tcp   docker_mysql_1

获取数据库容器的 ID 后,运行docker inspect CONTAINER_ID获取该容器的相关IP地址。

[root@test-001 ~]# docker inspect 8c1d234a3731 | grep -i IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "",
                    "IPAddress": "172.23.0.3",

在 Dbeaver 上,在添加新连接窗口中选择数据库类型后,转到network settings (SSH, ...)然后输入您的 docker 机器详细信息。并在主页上的Server Host:添加您从docker inspect命令,然后是您的凭据。

这应该有效

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker MySQL连接DBeaver 的相关文章

随机推荐

  • 我们可以使用 Base R 求出曲线下 95% 的面积吗?

    使用 Base R 我想知道是否可以确定曲线下 95 的面积 表示为posterior below 更具体地说 我想从mode 绿色虚线 朝尾部移动 然后在覆盖 95 的曲线区域时停止 所需的 x 轴值是该 95 区域的限制 如下图所示 p
  • 如何更改 mysql 中已创建的事件

    任何人都可以给我语法来更改已创建的事件 在这里 我使用以下语法创建了一个事件 create event insert on schedule at 2012 10 08 17 09 interval 10 second do insert
  • 将静态私有映射初始化为空

    我有一个static map这是一个private数据成员 如何在实现文件中初始化它 使其初始容器为空 它不是const 重要的是 开始时该容器中没有任何东西 Header class XXX private static std map
  • 为什么 Chrome 不使用元刷新进行重定向

    我使用的应用程序有一个 PL SQL 包 它创建页面并使用函数创建 META 标记 它创建一个带有 META 标记的网页 如下所示 问题是 Chrome 不喜欢 NAME Refresh 属性 它不会重定向页面 尽管它在 IE 和 Fire
  • 获取上传到 Flask 的文件的路径[重复]

    这个问题在这里已经有答案了 我有一个 Python Web 应用程序 为了界面方便 它在 Web 浏览器中本地运行 处理用户选择的文件 并保存处理后的数据 我需要添加在选择文件的同一文件夹中创建新子目录的功能 即 如果文件是path fna
  • 在 SQL 查询中将 int 或 null 转换为布尔值的最佳方法是什么?

    在 SQL 查询中将 int 或 null 转换为布尔值的最佳方法是什么 例如 任何非空值都是TRUE在结果中 任何空值都是FALSE在结果中 据我所知 如果我错了 请纠正我 SQL 中没有文字布尔值的概念 您可以将表达式计算为布尔值 但不
  • ANDROID:无法解析索引 13 处的属性

    gt gt java lang RuntimeException 无法启动活动 ComponentInfo sharedpreferenceex app htc com listview lv sharedpreferenceex app
  • 如何避免“dom”和“webworker”库之间的冲突?

    我将 TypeScript 与 React 结合使用 我想要实现的目标之一是后台同步以实现离线支持 要启用 Service Worker 的类型 我必须包含 WebWorker 库 但它与 DOM 库冲突并产生错误 25 1 Definit
  • 在 PHP 中模拟值类型结构类

    有没有办法在 PHP 中模拟结构类 即一个按值传递而不是按引用传递的类 因此它仍然可以进行类型提示 如果是这样 可以使用哪些不同的技术 最好的技术是什么 如果这是可能的 您显然可以为 PHP 创建一个完全类型安全的层 有这样的层吗 有没有人
  • 带有预分配缓冲区的循环缓冲区?

    是否有任何库具有可与预分配缓冲区一起使用的循环缓冲区类 我查看了 Boost circular buffer 但似乎它的所有构造函数都需要分配器 我不想重新发明循环缓冲区类 但必须使用预先分配的缓冲区 我想要类似的东西 char buffe
  • Rest API 与 AMQP

    什么时候使用 Rest API 而不是 AMQP 在内部微服务之间进行通信更好或更合理 我知道使用 Rest API 服务会更加相互依赖 所以我们是否可以说我们应该始终避免这种情况并使用 AMQP 内部人员之间的沟通什么时候更好或更合理 使
  • Python:输入验证

    我询问用户是否要先使用输入验证 以便仅接受 y Y n 或 N 作为有效响应 当我运行它时 我的代码似乎崩溃了 choice raw input Would you like to go first or not y Y or n N pr
  • 无法将源类型“List”转换为 IList

    这可能是一个非常简单的问题 但有些东西对我来说没有意义 给定这个类 public class Person ICloneable public object Clone Console WriteLine Hello world retur
  • 如何在 Symfony 路由中使用锚点?

    我在routing yml 文件中定义了一条路线 route name path dashboard messages id 然而 当我要求 Symfony 生成该路线时 我得到 dashboard 23messages 12345 如何跳
  • 在android中禁用短信通知[重复]

    这个问题在这里已经有答案了 可能的重复 我们可以在 Android 中的短信到达收件箱之前将其删除吗 https stackoverflow com questions 1741628 can we delete an sms in and
  • 在 C# 中将字符串转换为日期时间,格式为 yyyy-MM-dd HH:mm:ss

    我怎样才能转换这个2014 01 01 23 00 00 to DateTime我已经这样做了 Console WriteLine DateTime ParseExact 2014 01 01 23 00 00 yyyy MM dd HH
  • 将 onDelete 与原则 2 一起使用

    我无法让 onDelete 在 Doctrine2 中工作 使用 YAML 映射 我在我的尝试过这种关系Product class oneToOne category targetEntity Category onDelete CASCA
  • 如何使用 AzCopy 通过 cmd 在 Azure Web 应用服务中工作

    我面临一个问题 我正在使用 AzCopy 将文件复制到 Blob 存储 目前我使用虚拟机来托管我的应用程序 我能够将数据移动到 blob 现在我已将代码迁移到 Azure PaaS 即 azure 应用服务 现在的问题是我无法使用 cmd
  • 最新的omniauth-facebook gem 破解方案

    红宝石 2 6 3 gem rails gt 6 0 2 gt 6 0 2 1 我正在使用最新的omniauth facebook并一起设计 宝石文件 宝石 设计 gem omniauth facebook 启动服务器时出现此错误 vers
  • Docker MySQL连接DBeaver

    我刚刚完成了 YouTube 上的 Docker 教程 我能够为 PHP 和 MySQL 创建几个 Docker 容器 文件结构如下 gt Docker PHP MySQL gt DB Dockerfile gt src index php