mysql 서버에 연결하기 위해 다음 명령을 실행하고 있습니다(자동으로 연결되는 bash 스크립트의 일부임)
mysql -h slave1 -u monitor -pvP!KnK4*
터미널 창에 다음 응답이 나타납니다.
-bash: !KnK4: event not found
mysql -h slave1 -u monitor -p
명령줄에 패스를 추가하지 않고 실행하고 메시지가 표시될 때 동일한 비밀번호를 사용하면 훌륭하게 작동합니다.
이 상황에서 내가 뭘 잘못하고 있는 걸까?
추신: 위의 비밀번호는 실제 비밀번호가 아닙니다(더 길며 스택 교환을 위해 단축되었습니다).
답변1
셸 특정 문자(예: !
, *
)를 인수의 일부로 사용하려는 경우 실행하려는 명령에 전달하기 전에 셸이 이를 해석하지 않는 방식으로 이를 표시해야 합니다. 옮기다.
대신에:
$ mysql -h slave1 -u monitor -pvP!KnK4*
대신 다음을 사용하십시오.
$ mysql -h slave1 -u monitor -p'vP!KnK4*'
그럼 시간이 나면,실제 비밀번호인 경우 MySQL 사용자 비밀번호를 변경하세요.모든 사람이 볼 수 있도록 인터넷에 올렸기 때문입니다.
(또한 사용자의 쉘 기록 파일을 읽을 수 있는 사람은 누구나 이 비밀번호에 액세스할 수 있다는 점을 기억해야 합니다.)