在主机上连接Docker容器中的MySQL

在主机上连接Docker容器中的MySQL

如果您在Docker中运行MySQL,则可能需要在主机上连接到它来执行一些任务,例如备份或导入/导出数据。本文将介绍如何连接到Docker容器中的MySQL实例。

阅读更多:MySQL 教程

第1步 – 运行MySQL容器

我们将使用官方Docker Hub上的MySQL镜像来运行MySQL。您可以使用以下命令在容器中运行MySQL:

docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest

该命令将在Docker容器中运行一个MySQL实例,并向其提供一个root密码。

注意:如果您使用的是Windows系统,请确保在命令行中将双引号替换为单引号。

第2步 – 连接到MySQL

在运行MySQL后, 您可以使用以下命令来进入容器并打开MySQL shell:

docker exec -it mysql-server mysql -uroot -p

该命令将连接到正在运行的MySQL实例,并提示您输入root密码。

第3步 – 允许从主机远程连接到MySQL

默认情况下,MySQL容器仅允许从容器本身连接。如果您要从主机上的MySQL客户端连接到MySQL容器,则需要更改MySQL容器的配置,以允许来自主机的远程连接。

要更改MySQL容器的配置,请使用以下命令进入容器:

docker exec -it mysql-server bash

然后,编辑MySQL配置文件my.cnf:

vi /etc/mysql/my.cnf

找到并取消注释以下行:

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

在文件的末尾添加以下行:

[mysqld]
bind-address = 0.0.0.0

保存并退出文件。然后重新启动MySQL服务:

service mysql restart

注意:请勿更改MySQL的任何其他配置,除非您明确知道自己在做什么。

第4步 – 从主机连接到MySQL

完成上述步骤后,您现在可以从主机上的MySQL客户端连接到MySQL容器。您需要知道MySQL容器的IP地址才能连接到它。

如果您使用的是Linux系统,可以使用以下命令获取MySQL容器的IP地址:

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-server

如果您使用的是Docker Desktop for Windows/Mac,则可以使用以下命令获取MySQL容器的IP地址:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-server

然后在主机上,在MySQL客户端中使用以下命令连接到MySQL容器:

mysql -uroot -h MYSQL_CONTAINER_IP -p

其中MYSQL_CONTAINER_IP是上一步中获取到的MySQL容器的IP地址。

总结

在本文中,我们介绍了如何连接到Docker容器中的MySQL实例,并允许来自主机的远程连接。这使得您可以在主机上执行一些任务,而无需登录到容器中。但是,请注意,在做任何更改之前,请三思而后行,并时刻保持备份。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程