gpt4 book ai didi

mysql - 如何在 Windows 上从 groovy/java 执行 mysql 命令

转载 作者:行者123 更新时间:2023-11-29 08:03:08 25 4
gpt4 key购买 nike

我正在尝试从 groovy 脚本中的文件导入 mysql 数据库。

我正在尝试这样:

command = """mysql -f -u ${settings.dbUser} -p${settings.dbPassword} -h localhost --default-character-set=latin1 ${settings.dbName} < "$tableDefinitions" """

commandArray[0] = "cmd"
commandArray[1] = "/c"
commandArray[2] = "start " + command

def Process process = new ProcessBuilder(commandArray)
.directory(workingDir)
.redirectErrorStream(true)
.start()

如果我在控制台上输出命令,它看起来像这样:

mysql -f -u root -pHelloStackOverflow -h localhost --default-character-set=latin1 test123 < "C:\Users\XXX\git\YYY\commons\sqlData\table.sql"

但是,如果我这样做,所发生的只是打开一个 mysql 控制台窗口,并且我已经登录到它,但没有导入任何内容。如果我在控制台上执行相同的命令,它就会起作用。

我尝试直接调用mysql而不是cmd,但随后出现错误“无法运行命令”,“系统找不到指定的文件”

如何在不打开 mysql 控制台的情况下导入?

最佳答案

尝试:

def command = [ 'cmd',
'/c',
'mysql -f -u ${settings.dbUser} -p${settings.dbPassword} -h localhost --default-character-set=latin1 ${settings.dbName}' ]

def process = command.execute()
proc << tableDefinitions

def out = new StringBuilder()
def err = new StringBuilder()
proc.waitForProcessOutput(out, err)
if (out) println "out:\n$out"
if (err) println "err:\n$err"

关于mysql - 如何在 Windows 上从 groovy/java 执行 mysql 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23290094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com