【问题标题】:How do I create a new mysql database/schema through bash?如何通过 bash 创建新的 mysql 数据库/模式?
【发布时间】:2020-05-31 14:12:07
【问题描述】:

我正在编写一个 bash 脚本来创建一个新的空 mysql 数据库,该数据库基于一个已经存在的数据库。我的计划是通过以下步骤:

  1. 使用用户定义的名称创建一个空白数据库
  2. 使用 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} 使用新创建的数据库

【问题讨论】:

    标签: mysql bash


    【解决方案1】:

    好吧,没关系。我找到了解决方案。那 。在 'GRANT ALL PRIVILEGES ON . TO' 中是麻烦制造者。我将其更改为 .* 并且效果很好。

    【讨论】:

      猜你喜欢
      • 2012-10-05
      • 2016-03-03
      • 2011-01-14
      • 2013-12-22
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多