Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
坎恩';t按照官方指示连接mysql docker容器_Mysql_Docker - Fatal编程技术网

坎恩';t按照官方指示连接mysql docker容器

坎恩';t按照官方指示连接mysql docker容器,mysql,docker,Mysql,Docker,在以下步骤中: 启动一个mysql服务器实例 启动MySQL实例很简单: $docker run——说出一些mysql-e mysql\u ROOT\u PASSWORD=my secret pw-d mysql:tag 。。。其中,某些mysql是您要分配给容器的名称, my secret pw是为MySQL根用户和标记设置的密码 是指定所需MySQL版本的标记。见上面的列表 有关标签。从MySQL命令行客户端连接到MySQL 下面的命令启动另一个mysql容器实例并运行 针对原始mysql容

在以下步骤中:

启动一个mysql服务器实例

启动MySQL实例很简单:

$docker run——说出一些mysql-e mysql\u ROOT\u PASSWORD=my secret pw-d mysql:tag

。。。其中,某些mysql是您要分配给容器的名称, my secret pw是为MySQL根用户和标记设置的密码 是指定所需MySQL版本的标记。见上面的列表 有关标签。从MySQL命令行客户端连接到MySQL

下面的命令启动另一个mysql容器实例并运行 针对原始mysql容器的mysql命令行客户端, 允许您对数据库实例执行SQL语句:

$docker run-it--network some network--rm mysql-hsome mysql -用户示例-p

。。。其中somemysql是原始mysql容器的名称 (已连接到某个网络Docker网络)

我启动了一个mysql docker容器,然后尝试运行另一个作为mysql客户端的容器,但我不知道如何指定--network参数:


我应该输入什么而不是
某些网络
?我是Docker的新手,对Docker网络一无所知。如果我使用此参数,
未知MySQL服务器主机
将出现错误。

如果您有多个容器一起工作,您应该阅读有关docker compose的内容,以便配置网络、主机、环境变量等

//docker-compose.yml
版本:“3.2”
服务:
mysql\u客户端:
取决于:
-mysql\u数据库
mysql\u数据库:
图片:mysql:5.7
环境:
MYSQL\u ROOT\u密码:test
MYSQL\u数据库:测试
MYSQL\u用户:测试
MYSQL_密码:test
#执行此命令以启动容器
码头工人整理
默认情况下,容器位于同一网络上,在您的
mysql\u客户端中
使用
mysql\u数据库
作为mysql连接的主机名。

通过我发现这个docker compose脚本使Adminer和mysql协调运行

# Use root/example as user/password credentials

version: '3.1'

services:

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

  db:
    image: mysql:5.6
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
将其保存到名为
docker compose.yml的文件中,并使用docker compose运行它

在cmd promt中,导航到包含该文件的目录并运行以下操作:
docker编写

在启动第一个容器之前,您需要创建一个Docker网络

docker网络创建一些网络
你可以在这里使用任何你想要的名字,但我会使用
somenetwork
来与问题保持一致

启动数据库容器时,还需要将其连接到同一网络

docker volume创建mysql数据#这基本上也是必需的
码头工人赛跑\
--说出一些mysql\
-e MYSQL\u ROOT\u PASSWORD=我的秘密\
-d\
--net一些网络\#匹配“docker网络创建”`
-v mysql data:/var/lib/mysql/data\#重启时不要丢失数据
mysql:tag
(也有一个命令,但重新创建容器以更改设置是一种非常正常的做法。)

运行MySQL客户端也不需要第二个容器:您可以从主机连接普通的
MySQL
命令行工具。您需要从容器中发布端口

docker运行\
-p 12345:3306\
...
第一个端口号可以是不与主机上的另一个进程冲突的任何端口号;第二个数字必须是标准的MySQL端口号3306。然后,您可以使用连接到该数据库

mysql-h127.0.0.1-p12345-u示例用户-p
这个问题的其他答案都支持Docker Compose作为一种设置。Compose将
docker network为您创建一个网络;详细描述此设置。但是,它在运行交互式终端应用程序方面并不出色,您可能需要执行类似于
docker compose run db mysql-hdb…
的操作才能以这种方式访问它。发布的
端口:
方法也将起作用