私のデータベースにユーザーを追加するために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