MySQL:连接主机上的docker容器中的MySQL数据库

MySQL:连接主机上的docker容器中的MySQL数据库

阅读更多:MySQL 教程

问题描述

在执行docker-compose up 命令创建MySQL容器时,MySQL容器会默认启动一个内部网络服务,并在内部容器网络中开放3306端口。

然而,当我们尝试从主机上的其他进程(包括MySQL客户端)连接到MySQL容器时,通常会遇到“拒绝连接”错误。

那么,我们应该如何在主机上连接到Docker容器中的MySQL数据库呢?

解决方案

下面是解决该问题的步骤:

1. 创建MySQL Docker容器

首先,您需要编写docker-compose.yml文件或直接使用docker命令行工具创建MySQL Docker容器。

services:
  db:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
    ports:
      - "3306:3306"
Mysql

在上面的示例中,我们创建了一个名为db的MySQL容器,它开放了主机和容器之间的3306端口,并且使用了example作为root密码。

2. 连接MySQL容器

一旦MySQL容器运行,您可以通过以下任意一种方式连接到它。

命令行

您可以使用命令行连接到MySQL容器。

mysql -h127.0.0.1 -uroot -pexample
Mysql
客户端

您还可以使用MySQL客户端连接到MySQL容器。

import pymysql

connection = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='example',
    db='mysql'
)

with connection:
    with connection.cursor() as cursor:
        cursor.execute("SELECT DATABASE()")

        print(cursor.fetchone())
Python

可以使用pymysql或其他任何MySQL客户端库。

工具

MySQL Workbench等图形化工具也可以连接到MySQL容器。

在创建连接时,请确保您使用的是TCP / IP连接,并将主机设置为127.0.0.1,端口设置为3306。

总结

在本文中,我们讨论了如何从主机上连接到Docker容器中的MySQL数据库。 通过执行以上步骤,您可以成功连接到容器中的MySQL,并在主机上执行相关操作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册