![](/img/trans.png)
[英]How do I create a function in MySQL that is not attached to a schema/database?
[英]How do I create a new mysql database/schema through bash?
我正在編寫一個 bash 腳本來創建一個新的空 mysql 數據庫,基於一個已經存在的數據庫。 我的計划是通過以下步驟:
我可以通過 root 用戶創建新數據,但需要非 root 用戶才能使用該數據庫。 我的問題是在我嘗試向非 root 用戶授予特權的步驟中。
我得到的錯誤是:
第 1 行的 ERROR 1045 (28000):用戶 'root'@'%' 訪問被拒絕(使用密碼:YES)
這是我的 bash 代碼段的樣子:
# 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} 使用新創建的數據庫
好吧,那算了。 我找到了解決方案。 那 。 在“授予所有特權”中。 TO'是麻煩制造者。 我將其更改為 .* 並且效果很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.