다음은 내 샘플 코드입니다.
KEY_FILE=/tmp/key.txt
KEY=$(openssl rand 16)
echo $KEY > $KEY_FILE
ID=2345
source .mysqlCredentials.txt
MySqlCommand="mysql -h $IP -u $UserName -p$Password $DBName -e"
$MySqlCommand "INSERT INTO some_table ( ID , ssl_key ) VALUES (\"$ID\", \"$KEY\") ;"
내가 얻는 오류는 다음과 같습니다.
+ mysql -h X.X.X.X -u root -ppassword database -e 'INSERT INTO some_table ( ID , ssl_key ) VALUES ("2345", "ïëC;+¹"ë'\''J£èMÑ") ;'
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ë'J£èMÑ")' at line 1
생성된 키에는 작은따옴표, 백틱, 큰따옴표, 공백 등이 표시됩니다.
이 오류를 어떻게 극복할 수 있나요?
답변1
Rand 문자열을 Base64로 인코딩해 보는 것은 어떨까요? 이렇게:
openssl rand -base64 16
처리하기가 더 쉽습니다.