0

我有兴趣使用 nomad 在没有 docker 的 Windows 服务器上初始化 mysql 数据库。我尝试使用“exec”驱动程序、“mysql”命令和带有主机、用户名、密码等的 args 参数来创建作业。

job "gavin-setup" {

    datacenters = ["dc1"]

    group "gavin-setup-group" {

        task "setup" {
            driver = "exec"
            config = {
                command = "mysql"
                args = [
                    "-hlocalhost",
                    "-ugavin",
                    "-pgavin_secret",
                    "gavin_database",
                    "<",
                    "C:\\gavin\\config\\create.sql"
                ]
            }
        }

    }

}

这些论点没有被传递。我还尝试删除 args 并仅使用不起作用的命令:

mysql -hlocalhost -ugavin -pgavin_secret gavin_database < C:\\gavin\\config\\create.sql

是否可以在应用程序的首次运行时进行这种数据库初始化设置?游牧民族应该有能力做到这一点吗?如果不是 - 我应该使用其他过程来进行这种设置吗?

4

1 回答 1

1

我最终使用了 mysql.exe 的完整路径,发现这nomad logs -stderr <assoc-id>真的很有帮助。

job "gavin-setup" {

    datacenters = ["dc1"]

    group "gavin-setup-group" {

        task "create_db" {
            driver = "exec"
            config = {
                command = "C:/Program Files (x86)/MySQL/MySQL Server 5.6/bin/mysql.exe"
                args = [
                    "-uroot",
                    "-pgavin_secret",
                    "-e",
                    "create database if not exists gavin_db;"
                ]
            }
        }

    }

}
于 2018-06-01T19:45:33.623 回答