명령줄에 비밀번호를 추가하면 사용자 이름/비밀번호를 사용한 원격 mysql 로그인이 작동하지 않습니다.

명령줄에 비밀번호를 추가하면 사용자 이름/비밀번호를 사용한 원격 mysql 로그인이 작동하지 않습니다.

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 사용자 비밀번호를 변경하세요.모든 사람이 볼 수 있도록 인터넷에 올렸기 때문입니다.

(또한 사용자의 쉘 ​​기록 파일을 읽을 수 있는 사람은 누구나 이 비밀번호에 액세스할 수 있다는 점을 기억해야 합니다.)

관련 정보