【发布时间】:2020-08-07 01:12:31
【问题描述】:
有没有相同的用户名前缀下划线做同样的事情。
例如:-
#!/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 root 中使用没有变量目录的以下命令,则没有错误。
GRANT ALL PRIVILEGES ON `devdb\_%` . * TO 'devdb'@'localhost';
如果有人对此有解决方案,请回复。
【问题讨论】:
-
GRANT ALL PRIVILEGES给出了什么错误? -
还有——数据库在你
GRANT ALL PRIVILEGES之前存在吗? -
ERROR 1064 (42000) at line 3: 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '* TO 'devdb'@'localhost'' 附近使用正确的语法
-
这可能是shell解释的
backslash,再添加一个禁用它的特殊功能。