2012-04-02 70 views
6

我需要支持我的數據庫,但在備份前嘗試刷新表時,出現此錯誤? RELOAD特權是什麼意思?刷新表 - 訪問被拒絕

在phpmyadmin中找不到RELOAD權限!?

Error: Access denied; you need the RELOAD privilege for this operation 
SQL: FLUSH TABLES WITH READ LOCK 

回答

1

也許你沒有運行使用根FLUSH的命令,但在有限的用戶。
您需要授予RELOAD權限才能運行FLUSH命令。
查看here獲取MySQL權限。
所以(例如)根用戶應該使用:

GRANT RELOAD ON *.* TO 'your_user'@'localhost'; 
+0

這意味着我可以這樣做呢? '#mysqladmin flush-tables'? – clarkk 2012-04-02 08:00:22

+0

@clarkk:如果你有'RELOAD'特權,你可以運行使用'FLUSH'命令的'mysqladmin' ...但是你必須等待被授予'RELOAD'特權... – Marco 2012-04-02 08:02:44

+0

我在哪裏把密碼放在你的查詢? – clarkk 2012-04-02 08:08:13

15

澄清:
RELOAD只能全局授予,而不是一個特定的數據庫。需要使用*.*

GRANT RELOAD ON *.* TO 'your_user'@'localhost'; 

從MySQL的文檔:GRANT Syntax - Global Privileges

創建用戶,文件,進程,RELOAD,REPLICATION CLIENT, REPLICATION SLAVE,SHOW DATABASES,SHUTDOWN和SUPER權限是 行政管理,只能在全球範圍內授予。

+0

感謝@codewaggie提供正確答案。 – 2014-01-12 15:43:08