스크립트 암호화 비밀번호 실패

스크립트 암호화 비밀번호 실패

내 데이터베이스에 사용자를 추가하기 위해 bash 스크립트를 사용하여 테스트하고 있습니다! 내 bash 스크립트 코드는 다음과 같습니다.

mysql -u root <<MYSQL_SCRIPT
USE mail_server;
INSERT INTO mail_server.virtual_users

  (`id`, `domain_id`, `password` , `email`)

VALUES

  ('1', '1', ENCRYPT('test@test', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[email protected]');

MYSQL_SCRIPT

스크립트를 실행하면 사용자는 저장되지만 데이터베이스에는 비밀번호가 "0*"으로 저장됩니다! 내 모든 사용자 비밀번호는 비밀번호 0*을 받고 있습니다. 누군가 도움을 받을 수 있기를 바랍니다.

답변1

<<SOMETHING귀하의 문제는 여기 문서(사물)에서 , $가 특별한 의미를 \갖는다는 사실에서 비롯됩니다 `.

이를 방지하려면 첫 번째 구분 기호의 일부를 인용하여 이러한 문자가 더 이상 특별하지 않은 문서 버전으로 전환해야 합니다. 예는 다음과 같습니다:

mysql -u root <<\MYSQL_SCRIPT
MYSQL_SCRIPT
mysql -u root <<'M'YSQL_SCRIPT
MYSQL_SCRIPT
mysql -u root <<MYSQL_SCRIP\T
MYSQL_SCRIPT
mysql -u root <<MY"SQL_SC"RIPT
MYSQL_SCRIPT
mysql -u root <<'MYSQL_SCRIPT'
MYSQL_SCRIPT

관련 정보