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 합니다.