mysql - 如何使用用户输入的名称创建MYSQL数据库

标签 mysql wordpress bash

我正在尝试在我的网络服务器上自动设置新的 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,并使用随 secret 码为用户 admin_howtofish 授予数据库的完全权限

但是,我得到的是:

Domain entered = howtofish.com

我制作了数据库wordpress,用户管理员使用随 secret 码获得了数据库的完全权限

最佳答案

下面的代码解决了这个问题。

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;"

关于mysql - 如何使用用户输入的名称创建MYSQL数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57197470/

相关文章:

mysql - DBeaver 数据格式化 - 巴西

Mysql 5.6 不在子查询中使用索引

linux - 查找连接到 Linux 机器的所有存储设备

bash - 捕获任何 STDERR 数据的函数

mysql - SQL 查询 - 数据透视分组或任何概念来获取我的结果表

javascript - Php-Codeigniter : How to exit from ajax Manually . ?

wordpress - 授予WordPress永久访问Web服务器的权限

php - Inline-Block 使图像变小的问题?

php - WordPress 循环 : how to wrap each 3 posts into a div?

linux - 让 cron 作业每 30 分钟运行一次 - 使用 cron.hourly?