bash shell脚本,麻烦创建mysql数据库加用户

时间:2015-06-27 19:49:06

标签: mysql bash shell

我有一个shell脚本,其中包含以下内容:

#!/bin/sh
mysql -uqgk_user -ppw12345 -e "create database qgk; GRANT ALL PRIVILEGES ON qgk.* TO qgk_user@localhost IDENTIFIED BY 'pw12345' WITH GRANT OPTION;"

如果我运行shell脚本,则会收到此错误:

manager@xagate:/var/www/.../public_html/...$ sh database_setup.sh 
ERROR 1045 (28000): Access denied for user 'qgk_user'@'localhost' (using password: YES)

我不明白为什么会出现这个问题。任何为此问题发布工作解决方案的人都可以在他们的答案中包含他们的Ripple地址,以获得XRP的奖励,以帮助解决此问题。

1 个答案:

答案 0 :(得分:2)

这就是我解决这个问题的方法:

http://www.bluepiccadilly.com/2011/12/creating-mysql-database-and-user-command-line-and-bash-script-automate-process

manager@xagate:/var/www$ cat mysql_setup.sh 
#!/bin/bash

EXPECTED_ARGS=3
E_BADARGS=65
MYSQL=`which mysql`

Q1="CREATE DATABASE IF NOT EXISTS $1;"
Q2="GRANT USAGE ON *.* TO $2@localhost IDENTIFIED BY '$3';"
Q3="GRANT ALL PRIVILEGES ON $1.* TO $2@localhost;"
Q4="FLUSH PRIVILEGES;"
SQL="${Q1}${Q2}${Q3}${Q4}"

if [ $# -ne $EXPECTED_ARGS ]
then
 echo "Usage: $0 qgk qgk_user PASSWORD"
exit $E_BADARGS
fi

$MYSQL -uroot -p -e "$SQL"

然后我必须登录Webmin导航到服务器> MySQL数据库服务器>用户权限> root @ localhost>重新分配密码。

在mysql_setup.sh脚本执行时提示输入密码并输入root @ localhost用户密码时,数据库与qgk_user和所选密码一起创建。

感谢您的帮助,先生:)