JiangBao
This guy is lazy and leaves nothing behind
docker里如何执行sql
当我们在docker里运行数据库,想执行初始化sql脚本,这里以mysql为例: 去执行mysql命令会出现报错
mysql命令报错
宿主机直接执行mysql命令行是无效的,它会报错,这是因为mysql安装在docker容器内,宿主机无法直接命令执行。
zsh: command not found: mysql docker exec命令
所以我们必须进入docker里去执行,命令如下:
docker exec -it mysql bash
# docker exec 命令用于在正在运行的Docker 容器中执行命令。它允许用户与容器内部进行交互,而无需进入容器的shell。
# 命令中mysql是容器名 此时我们进入mysql命令模式
如果直接执行宿主机的sql文件是不行的
容器内复制文件
新开一个终端 查看容器的文件目录
docker exec mysql ls 首先我们把文件复制到docker里来
执行 docker cp <宿主机文件的绝对路径> 空格 <docker数据库container id>:<docker容器路径>
docker cp /Users/xxx/xxx.sql 60dba8cdfc5e:/tmp 容器id可以通过docker ps获取
执行sql脚本
回到我们之前进入mysql命令模式 选择数据库
use test; 执行sql文件
source /tmp/xxx.sql 即可