用戶嘗試查詢當前數據庫和版本報錯,但查詢用戶和時間正常,懷疑權限問題。
-- 方法一:顯示所有數據庫(當前使用的會標 *)
SHOW DATABASES;
-- 方法二:直接查詢當前數據庫(需先 USE 數據庫)
SELECT DATABASE();
-- 方法一:版本函數
SELECT VERSION();
-- 方法二:系統變量
SELECT @@VERSION;
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'%';
FLUSH PRIVILEGES;
DROP USER 'username'@'%';
注意:MySQL 5.7+ 不支持 `DELETE FROM mysql.user` 直接刪除,必須用 `DROP USER`。
| 錯誤碼 | SQLSTATE | 含義 |
|---|---|---|
| 1064 | 42000 | 語法錯誤 |
| 1054 | 42S22 | 列不存在 |
| 1142 | 42000 | 權限不足 |
查詢當前庫用 `SELECT DATABASE()`,查版本用 `SELECT VERSION()`。用戶操作用標準 DDL 語法,避免直接操作 mysql 系統表。