powershell 을 command line 에서 실행할 때 "'<' 연산자는 나중에 사용하도록 예약되어 있습니다". 에러


MySQL 덤프한 파일을 파워쉘 커맨드 라인에서 import 하려고 다음 명령어를 실행중이었습니다.


mysql.exe  -u my_service -p  my_service < mysql-dump.sql


예상과는 달리 다음 에러가 나고 제대로 실행이 안 되었습니다.

한글
'<' 연산자는 나중에 사용하도록 예약되어 있습니다.
영어
The '<' operator is reserved for future use


구글링해보니 powershell 은 1.0 부터 현재까지 꾸준하게 < 연산자를 입력 pipe 로 사용할 수가 없다고 합니다.


workaround 로 다음과 같은 방법이 가능합니다.


Get-Content 사용

파일의 내용을 읽는 Get-Content cmdlet 을 사용해서 먼저 파일을 로딩하고 mysql 명령어 넘겨주도록 수정합니다.

Get-Content mysql-dump.sql | mysql.exe  -u my_service -p  my_service


cmd 사용

cmd.exe 는 < 를 입력 파이프로 사용하므로 cmd 를 사용해서 import 합니다.

cmd /c 'mysql.exe  -u my_service -p  my_service < mysql-dump.sql'



WSL 내 linux 사용

WSL(Windows Subsystem For Linux) 을 띄우고 여기에 있는 bash 을 사용해서 import 합니다.



Ref