MySQL Server error report:
INSERT command denied to user 'user'@'localhost' for table 'table_name', errno: 1142
當前連線用戶 缺少目標表的 INSERT 權限。
SHOW GRANTS FOR 'user'@'localhost';
-- 或查看具體表權限
SELECT * FROM mysql.tables_priv WHERE User='user' AND Host='localhost' AND Table_name='table_name';
若無 INSERT 權限,需授予:
GRANT INSERT ON db_name.table_name TO 'user'@'localhost';
FLUSH PRIVILEGES;
config.php、web.config、jdbc.properties) 內的資料庫用戶名/密碼/主機是否正確。df -h /var/lib/mysql -- 檢查磁碟剩餘
SHOW TABLE STATUS LIKE 'table_name'; -- 檢查 Data_length/Max_data_length
-- MyISAM 表滿 (達 MAX_ROWS/AVG_ROW_LENGTH 上限) 也會報此錯誤
空間不足解決:清理日誌、歸檔舊數據、擴容磁碟、調大 MAX_ROWS (見文章 90230)。
GRANT INSERT ON *.* — 全域 (所有庫所有表)。GRANT INSERT ON db.* — 庫級。GRANT INSERT ON db.table — 表級 (最精準)。GRANT INSERT (col1,col2) ON db.table — 欄位級 (極少用)。授權後無需重啟,FLUSH PRIVILEGES 或新連線即生效。
SELECT/INSERT/UPDATE/DELETE。pt-show-grants 審計權限異常。Max_used_connections 等關鍵指標。