脚本加密密码失败

脚本加密密码失败

我正在测试使用 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

相关内容