mysql - 如何使用用户输入的名称创建 MYSQL 数据库
问题描述
我正在尝试在我的网络服务器上自动设置新的 wordpress 托管客户端,并且每个客户端都需要它在 MYSQL DB 上,但是我无法通过排除用户的输入来想办法给每个客户端一个唯一的名称
我试过输入一个默认值,即 wordpressJohn,它工作得很好,但是它不能从上面拉入变量,我不确定我是否做对了。
read -p "Enter The Customer's Domain Name: " domainName
shortenedDomainName=$domainName | cut -f1 -d"."
sudo mysql -uroot -e "CREATE DATABASE wordpress$shortenedDomainName"
sudo mysql -uroot -e "GRANT ALL PRIVILEGES on wordpress$shortenedDomainName.* to 'admin_$shortenedDomainName'@'localhost' identified by 'arandompasswordhere';"
sudo mysql -uroot -e "FLUSH PRIVILEGES"
我希望脚本能够运行并根据输入的域名创建一个数据库,即:
Domain entered = howtofish.com
我希望创建数据库 wordpresshowtofish,使用随机密码为用户 admin_howtofish 授予对数据库的完全权限
但是,我得到的是:
Domain entered = howtofish.com
我得到了数据库 wordpress,用户 admin 使用随机密码获得了数据库的完全权限
解决方案
下面的代码解决了它。
read -p "Enter The Customer's Domain Name: " domainName
shortdomname=${domainName//.}
dbname=${shortdomname}_db
mysql -e "CREATE DATABASE ${dbname};"
mysql -e "GRANT ALL PRIVILEGES ON ${dbname}.* TO 'dbadmin'@'localhost' IDENTIFIED BY 'random';"
mysql -e "FLUSH PRIVILEGES;"
推荐阅读
- c# - 如何在写入同一流时流式传输 HTTP 响应?
- java - 如何忽略特定 API 的 OncePerRequestFilter
- jquery - 引导选择器闪烁
- java - 读取候选组件类失败,嵌套异常为 ArrayStoreException : java.lang.String
- asp.net - 需要仅使用 html 代码显示单选按钮,但不使用 ITextSharp 中的 PdfFormField
- javascript - ReactJS 滚动元素一定数量的像素
- ios - 有时无法访问配对手表模拟器上的 WatchConnectivity 会话
- meteor - 在文本编辑器中检测错误的车把/空格键标签:MeteorJS
- java - IntStream rangeClosed 无法返回 int 以外的值
- javascript - 使用'let'通过三元运算符声明变量时的ReferenceError