Mysql
MySQL 添加/授予使用者(如果不存在)
我正在嘗試創建一個更新/安裝腳本,僅當它是全新安裝時才添加使用者和數據庫。該腳本為使用者使用隨機生成的密碼,因此使用StackOverflow 執行緒
GRANT
中建議的語句將不起作用。
- 只有當使用者不存在時,有沒有辦法創建、設置密碼和授予使用者權限?
- 我是否必須在腳本中執行檢查,然後執行語句,還是可以將其建構到 SQL 文件中?
您需要的是動態 SQL
SET @sql_found='SELECT 1 INTO @x'; SET @sql_fresh='GRANT ALL ON *.* TO randomuser@''%'' IDENTIFIED BY ''randompassword'''; SELECT COUNT(1) INTO @found_count FROM mysql.user WHERE user='randomuser' AND host='%'; SET @sql=IF(@found_count=1,@sql_found,@sql_fresh); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
如果
@found_count
為 1,則SELECT 1 INTO @x;
執行。(這個查詢什麼都不做)否則,
GRANT ALL ON *.* TO randomuser@'%' IDENTIFIED BY 'randompassword';
試一試 !!!