场景说明:
之前有个业务需要在java中创建数据库用户,最终采用了执行拼接shell命令的方式解决;
解决方式:
String sb = "mysql -u*** -p*** -e "创建用户的sql" ";
Process process = Runtime.getRuntime().exec (sb);
但是发现,指令没有问题的前提下,数据库没有成功添加用户,最终发现,对于复杂的拼接的shell指令,需要在java中特殊声明一下(不然会自动截断执行,导致不成功),正确的解决方式如下:
String sb = "mysql -u*** -p*** -e "创建用户的sql" "; String cmds = {"sh","-c",sb}; Process process = Runtime.getRuntime().exec (cmds);
这样就么得问题了~且行且填坑