提问人:voidead 提问时间:4/24/2020 最后编辑:Cyrusvoidead 更新时间:4/24/2020 访问量:1340
如何在带前缀的 Bash 脚本中创建 MySQL 用户和数据库
how do i create mysql user and database in bash script with prefix
问:
无论如何,是否可以对具有相同用户名的前缀下划线做同样的事情。
例如:-
#!/bin/bash
db_user=devdb
db_pass=`openssl rand -hex 16`
mysql -u root <<-EOF
CREATE USER '$db_user'@'localhost' IDENTIFIED BY '$db_pass';
GRANT ALL PRIVILEGES ON `$db_user\_%` . * TO '$db_user'@'localhost';
FLUSH PRIVILEGES;
EOF
在上面的脚本中,GRANT ALL PRIVILEGES 给出错误,我想要解决方案。
如果我在mysql根目录中使用以下命令,则没有变量目录,则没有错误。
GRANT ALL PRIVILEGES ON `devdb\_%` . * TO 'devdb'@'localhost';
如果有人对此有解决方案,请回复。
答:
0赞
Hydes
4/24/2020
#1
尝试对变量使用双引号而不是单引号。
评论
0赞
Hydes
4/24/2020
然后我猜正在发生的事情是,在你在这里字符串中,你直接将值一个接一个地传递给mysql shell(在这种情况下,mysql不会扩展变量,而是将它们字面意思是$db_user)。尝试一次,不要使用 here-string 进行确认。
评论
GRANT ALL PRIVILEGES
GRANT ALL PRIVILEGES
backslash