这就是我直接从 Bash 创建 MySQL 授权的所有特权数据库用户和具有相同名称的相应数据库实例的方式:
echo "CREATE USER "${domain}"@"localhost" IDENTIFIED BY \"${dbup}\";" | mysql -u root -p"${dbrp}"
echo "CREATE DATABASE ${domain};" | mysql -u root -p"${dbrp}"
echo "GRANT ALL PRIVILEGES ON ${domain}.* TO ${domain}@localhost;" | mysql -u root -p"${dbrp}"
前两个命令能否以某种方式合并为一个命令?
使用“此处文档”又名heredoc。例如:
不幸的是,
mysql
仍然不支持 CREATE USER 或 CREATE DATABASE 或 GRANT 等的回滚(它对 DDL 操作进行隐式提交),否则我会说你应该将所有这些命令包装在一个事务中(这样如果一个失败,他们一切都失败了,一切都恢复到原来的样子)。为什么不更简单?一条不太长的线路足以完成所有三项任务。
我几乎从不使用
create user
,从我的角度来看它只是没用,除非您需要将相同的用户添加到许多数据库中。此外,如您所见,串联;
效果很好。删除
-v
以关闭详细输出。