- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在Ubuntu 14.04上使用Grails 2.4.5 org.codehaus.groovy.runtime.ProcessGroovyMethods时:
def command = "mysqldump -h${databaseProperties.host} -u'${databaseProperties.username}' -p'${databaseProperties.password}' ${databaseProperties.name} " + table
print command
def proc = command.execute()
def oneMinute = 60000
proc.waitForOrKill(oneMinute)
if(proc.exitValue()!=0){
println "[[return code: ${proc.exitValue()}]]"
println "[[stderr: ${proc.err.text}]]"
return null
}else{
return proc.in.text.readLines()
}
[[return code: 2]]
[[stderr: mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect]]
"mysqldump -hlocalhost -u'root' -p'password' database table"
最佳答案
更新:
经过一整夜的思考,我(仍然)确信该问题与您的密码有关。由于在命令行上提供密码确实不是最佳实践(mysqldump甚至会警告您),因此我认为您应该通过创建登录路径来更改策略。
使用以下命令创建登录路径(这是一次性步骤):
mysql_config_editor set --login-path=name --host=localhost --user=youruser --password
def command="mysqldump --login-path=name database table"
String.execute()
不使用命令 shell ,因此单引号将被传递给mysqldump,就好像它们是密码的一部分一样。
String.execute()
是去这里的方法,因为它对引号的处理是意外的。如果您的密码不包含空格,那就很好了,但这可能很脆弱。
ProcessBuilder
:
ProcessBuilder pb = new ProcessBuilder("mysqldump", "-h${databaseProperties.host}", "-u${databaseProperties.username}", "-p${databaseProperties.password}", databaseProperties.name, table);
pb.inheritIO();
Process p = pb.start();
command.execute()
无法正确处理此问题,但可以使用
ProcessBuilder
方法。
关于grails - groovy的ProcessGroovyMethods(UNIXProcess)导致的错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33714852/
在Ubuntu 14.04上使用Grails 2.4.5 org.codehaus.groovy.runtime.ProcessGroovyMethods时: def command = "mysql
我尝试使用 UNIXProcess.class,但 Eclipse 不断警告我 UNIXProcess 不可见。 代码很简单: import java.lang.Process; public cla
我遇到的问题与 this SO question 几乎相同除了不同的操作系统和 Java 版本(他的回答似乎是特定于 Solaris 的修复程序,而我使用的是 Linux)。在某些情况下,当我尝试从
我正在构建一个我打算仅在 Unix 操作系统上使用的 Java 应用程序。 在应用程序中,我使用 ProcessBuilder 创建了一些子进程,并希望以 native 方式与它们交互。因此,我不想使
我试图使用以下方法获取目录下的文件列表: val d = "..." // Path to a directory on a NTFS partition val pb = new ProcessBu
我在 HotSpot 8u162 上的 Linux 上运行 Java 单元测试。一个测试用例执行bash -c echo Hello通过 ProcessBuilder 。大多数情况下,这个测试用例运行
我正在尝试运行不带参数的命令“/home/simulations/scripts/getDsuIp.sh”。 当我在机器上手动运行这个命令时,效果很好!所以文件肯定存在,绝对可运行 (755),并且在
我有一个在 Solaris 上运行的 Java 应用程序。此应用程序使用 Runtime.exec 定期启动外部进程。似乎一段时间后,多次成功启动此类进程后,进程的启动将挂起。此时(以及几分钟后)获取
我是一名优秀的程序员,十分优秀!