다음과 같이 mysql을 50번 호출하지 않고 데이터베이스 객체당 하나의 파일을 mysql로 매핑하는 일련의 .SQL 파일을 가져오려고 합니다.
mysql -u root < cat schema/db1/*.sql
"cat"은 디렉토리가 아니기 때문에 작동하지 않습니다. 어떻게 해야 할까요? 왜 제 작업이 작동하지 않나요? Linux 명령 파이프라인에 대해 무엇을 이해하지 못합니까? ? ?
편집 | 데이터베이스는 SQL 파일에서 생성되므로 다음 중 하나도 작동하지 않습니다.
cat bridge_access/*.sql | mysql -u root bridge_access
답변1
당신이 시도하고 있는 명령은 그것을 cat
파일로 취급하려고 시도하고 그 내용을 mysql
STDIN으로 밀어넣습니다. 대신 cat
명령 결과를 STDIN으로 푸시 해야 하며 이는 몇 가지 다른 방법으로 수행할 수 있습니다. 내가 수행하는 방법은 출력을 cat
다음으로 파이프하는 것입니다 mysql
.
$ cat schema/db1/*.sql | mysql -u root
또한 유효하며 다음을 사용할 수 있습니다.
$ mysql -u root < `cat schema/db1/*.sql`