linux java mysql 源命令未知数据库

linux java mysql source command Unknown database

我在 Ubuntu 上使用 Java 连接 mysql 服务器

这是 java 代码:

Runtime.getRuntime().exec("mysql -u user -ppass -e \"source filename "\"");

但它总是给我这个错误

ERROR 1049 (42000): Unknown database 'filename'

它在 windows 10 中工作,并在 Ubuntu-18.04

的终端中直接命令 "mysql -u user -ppass -e "source filename "

我是 Linux 的新手,有什么想法吗?

Runtime.exec("mysql db_name <"fource file_name");

例如:

Runtime.exec("mysql db_name </home/ferrakkem/download/tpch/queries/Q1.sql");

更多详情:check out this documentations

exec 的这种变体依赖于对命令进行标记(因此在空格上进行拆分),并且对于包含空格的重要命令行字符串将失败。使用 exec 的替代形式,自己构建参数数组:

String[] args = {
            "mysql", "-u", "user", "-ppass", "-e", "\"source filename\""
    };
Runtime.getRuntime().exec(args);