首页 > 解决方案 > 如何使用用户输入的名称创建 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 使用随机密码获得了数据库的完全权限

标签: mysqlwordpressbash

解决方案


下面的代码解决了它。

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

推荐阅读