我有流动的容器。所以我需要导入sql数据库并尝试
docker-compose exec MYSQL_CONTAINERNAME mysql -uroot -p --database=MY_DB < /code/export_new.sql
但是我有消息“docker compose exec-i mysql\u container name mysql-uroot-p--database=my\u db</code/export\u new.sql”如果我在命令后使用“-i”或“-t”或“-it”参数“。。。执行官“我有消息:
Usage: exec [options] [-e KEY=VAL...] SERVICE COMMAND [ARGS...]
Options:
-d, --detach Detached mode: Run command in the background.
--privileged Give extended privileges to the process.
-u, --user USER Run the command as this user.
-T Disable pseudo-tty allocation. By default `docker-compose exec`
allocates a TTY.
--index=index index of the container if there are multiple
instances of a service [default: 1]
-e, --env KEY=VAL Set environment variables (can be used multiple times,
not supported in API < 1.25)
-w, --workdir DIR Path to workdir directory for this command.
如何将“export\u new.sql”导入到容器中的mysql?
4条答案
按热度按时间js4nwp541#
为我工作
sczxawaw2#
好的,首先您必须连接到正在运行的mysql示例。您可以使用以下命令:
在此命令中,更改字符串
some-mysql
实际容器的名称。变量对应于:mysql\u port\u 3306\u tcp\u addr-host(默认:localhost)
mysql\ u port\ u 3306\ u tcp\ u port-端口(默认值:3306)
mysql\u env\u mysql\u root\u password-root用户的密码
然后,您就可以直接在mysql示例上执行命令,只需键入:
有关任何故障排除或良好的信息来源,请阅读mysql docker image:https://hub.docker.com/_/mysql/
eulz3vhy3#
如果docker dbms有密码,则应使用:
这个
databasename_optional
是可选的,因为某些db转储会将db名称设置在其上,如:wdebmtf24#
使用
docker-compose exec
像这样没用(不知道为什么),但你可以用docker exec
. 您只需要知道容器名称或id。名称在docker-compose up
或者你可以用docker-compose ps
.下面是一个命令示例:
或者你可以合并
docker-compose ps
这样您只需要知道短名称(在docker compose.yml中定义):另外,请注意,我在使用带有-p标志的上述命令时遇到了问题,因此它会以交互方式请求密码,但当我在初始命令中传递密码时(例如。
mysql -uroot -pmypwd
).