我找到了这段代码,但不太明白命令在做什么。
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
我知道命令sudo
和mysql
请解释一下? 感谢
答案 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.sql
将test_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
和您的密码之间没有空格。