【发布时间】:2020-05-31 14:12:07
【问题描述】:
我正在编写一个 bash 脚本来创建一个新的空 mysql 数据库,该数据库基于一个已经存在的数据库。我的计划是通过以下步骤:
- 使用用户定义的名称创建一个空白数据库
- 使用 mysql dump 填充该数据库,方法是从现有数据中引入数据结构
我可以通过 root 用户创建新数据,但需要非 root 用户才能使用该数据库。我的问题是在我尝试授予非 root 用户权限的步骤。
我得到的错误是:
ERROR 1045 (28000) at line 1: Access denied for user 'root'@'%' (using password: YES)
这是我的 bash sn-p 的样子:
# drop database, if previous one exists
mysql -h ${DB_HOST} -u ${DB_USER_ROOT} -p${DB_PASSWORD_ROOT} -e "drop database if exists ${target_db}"
echo "dropped the DB"
# create a new database
mysql -h ${DB_HOST} -u ${DB_USER_ROOT} -p${DB_PASSWORD_ROOT} -e "create database if not exists ${target_db}"
echo "created new DB"
sudo mysql -h ${DB_HOST} -u ${DB_USER_ROOT} -p${DB_PASSWORD_ROOT} -e "GRANT ALL PRIVILEGES ON *.* TO '${DB_USER}'@'${DB_HOST}' with grant option;"
echo "granted permissions"
mysql -h ${DB_HOST} -u ${DB_USER_ROOT} -p${DB_PASSWORD_ROOT} -e "FLUSH PRIVILEGES;"
echo "flushed permissions"
我希望能够使用非根 ${DB_USER} 使用新创建的数据库
【问题讨论】: