Ubunto docker sh mysql脚本运行

时间:2017-05-14 12:35:57

标签: mysql linux bash shell docker

我有一个构建我的docker env的脚本。 我有这条线:

docker exec -it guac-mysql /bin/bash
mysql -u root -p123456
CREATE DATABASE guacamole;
CREATE USER 'guacamole' IDENTIFIED BY 123456;
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole';
FLUSH PRIVILEGES;
quit

当我运行时,脚本进入容器上的bash,但其他行不运行,我只需要逐个运行它们。 我该怎么执行然后注入脚本?

谢谢:)

1 个答案:

答案 0 :(得分:0)

您无法将其作为单个脚本运行。 docker exec命令将在容器中创建一个shell。在您退出容器之前,它不会运行其余部分。那么它将运行mysql等......

您需要运行docker exec -it guac-mysql /bin/bash

然后您可以创建一个单独的脚本来在容器本身中运行mysql命令

但是您当前的脚本无法正常工作。再次,它将运行mysql然后等待它退出,然后再运行create database等。

查看有关从文件执行脚本的文档:https://dev.mysql.com/doc/refman/5.7/en/mysql-batch-commands.html