bash script命令将schema.sql注入mysql db

时间:2012-02-16 08:48:46

标签: mysql bash

我找到了这段代码,但不太明白命令在做什么。

sudo -u test-user mysql -U test_traffic traffic < ./phoenix/data/sql/lib.model.schema.sql

我知道最后一部分是使用lib.model.schema.sql来创建表和字段 第一部分我不太明白:sudo -u test-user mysql -U test_traffic traffic

我知道命令sudomysql

请解释一下? 感谢

3 个答案:

答案 0 :(得分:3)

让我们一点一点地看一下。首先是格式

sudo -u username command

是用户command运行username(可能简单或复杂)的指令。因此,在您的示例中,您以用户mysql身份运行test-user命令。您应该注意,这包括mysql命令的所有参数 - 这是整个行的其余部分。

命令

mysql -U test_traffic traffic < ./phoenix/data/sql/lib.model.schema.sql

显示已损坏(当然在5.0.51a上运行它失败)。如果-U-u,表明该命令是为mysql用户test_traffic执行的,那将是有意义的。如果它是-u,那么您将获得将sql文件导入流量数据库的指令。

因此,组合指令说,使用mysql用户lib.model.schema.sqltest_traffic文件导入数据库test_traffic并执行整个命令,就好像您以用户身份登录{ {1}}。

答案 1 :(得分:1)

尝试以下mysql步骤:

   mysql > -h hostname  -u username -p password

    mysql > use databasename;

    mysql > source path/to/scriptfile

答案 2 :(得分:0)

如果要使用shell脚本将theschema.sql文件注入数据库,只需使用:

mysql -h [host] -u [username] -p[password] -D [database] < your_file

如果要动态告知应加载哪个文件,请将your_file替换为$1,并将该文件的名称作为参数传递给脚本。

还要注意-p选项。 -p和您的密码之间没有空格。