cat SQL 파일을 생성하고 가져오기 모드로 전달

cat SQL 파일을 생성하고 가져오기 모드로 전달

다음과 같이 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파일로 취급하려고 시도하고 그 내용을 mysqlSTDIN으로 밀어넣습니다. 대신 cat명령 결과를 STDIN으로 푸시 해야 하며 이는 몇 가지 다른 방법으로 수행할 수 있습니다. 내가 수행하는 방법은 출력을 cat다음으로 파이프하는 것입니다 mysql.

$ cat schema/db1/*.sql | mysql -u root

또한 유효하며 다음을 사용할 수 있습니다.

$ mysql -u root < `cat schema/db1/*.sql`

관련 정보