否認我有,當我選擇用用戶名和密碼的數據,它的工作原理,但是當我在相同的用戶名和密碼錶中插入一些數據,它顯示了我的錯誤數據庫表插入命令在MySQL
INSERT command denied to user 'username'@'localhost' for table 'tablename'
我使用谷歌搜索和其他人有與數據庫大小相同的問題。我檢查了我的數據庫,當我直接去phpmyadmin插入數據到表中時,它可以工作,但是當我從PHP腳本中調用對錶的查詢時,它給了我錯誤。
否認我有,當我選擇用用戶名和密碼的數據,它的工作原理,但是當我在相同的用戶名和密碼錶中插入一些數據,它顯示了我的錯誤數據庫表插入命令在MySQL
INSERT command denied to user 'username'@'localhost' for table 'tablename'
我使用谷歌搜索和其他人有與數據庫大小相同的問題。我檢查了我的數據庫,當我直接去phpmyadmin插入數據到表中時,它可以工作,但是當我從PHP腳本中調用對錶的查詢時,它給了我錯誤。
這是一個權限問題。登錄到具有應用程序正在運行,並且用戶的MySQL提示,輸入此查詢:
SHOW GRANTS;
這將顯示您的權限(在MySQL發言grants),目前的用戶有。我的猜測是你不會看到給定表的INSERT權限。您需要root用戶才能通過運行此查詢向您授予權限:
GRANT INSERT ON 'db'.'tablename' TO 'username'@'localhost'
我在我的phpmyadmin中運行查詢,它給了我錯誤。 '#1142 - GRANT命令對用戶'uname'@'localhost'拒絕表'tablename' ' – 2011-04-18 06:08:56
好吧,您沒有權限查看您的權限。您必須以root身份登錄才能檢查,或聯繫管理您託管的人員並提問。 – 2011-04-18 14:55:05
將我的站點從一個託管帳戶移動到另一個託管帳戶後,我遇到了類似的問題。該問題是由引用舊數據庫的SQL查詢(INSERT
)引起的。用新的數據庫名稱替換舊的數據庫(或者完全刪除數據庫名稱)解決了這個問題。但是這個錯誤讓我的託管公司的支持人員難倒了。
例子:
INSERT INTO old_db_name.table_name () VALUES();
更改爲:
INSERT INTO new_db_name.table_name () VALUES ();
希望這有助於和有意義。
你不會相信這很容易搞砸了,特別是如果你的託管公司堅持前綴表! – Sydwell 2015-05-10 21:38:14
在您的查詢中,您可能正在使用名稱爲「INSERT INTO DB_NAME.table_name ...」的數據庫名稱的表名,您的數據庫用戶沒有DB_NAME的插入權限。所以這個錯誤即將到來,因爲查詢指向另一個數據庫的表。
您需要刪除數據庫名稱或使用正確的數據庫名稱。
確保您有到數據庫的開放連接。
如果您有用於數據庫連接和插入值的單獨函數,請檢查數據庫連接是否打開。
這也發生在我身上,問題是當你在php文件中調用INSERT
命令時,你必須指定另一個數據庫。
總之,尋找到你的INSERT命令,並檢查部分your_database_name
下面
"INSERT INTO \`your_database_name\`.\`your_table_name\`
這可能會解決你的問題。當然,如果所有權限都授予您。
檢查你的SQL代碼。
而只是刪除dbName,如果你有。
例子:
insert into `dbName`.`tableName` (columns) values (values);
更改爲:
insert into `tableName` (columns) values (values);
感謝的人,小步驟解決我的問題。 – 2017-06-05 03:40:27
我有同樣的問題。
我們託管的mysql提供程序在達到最大數據庫容量時刪除了插入權限。
使用MySQL中
SHOW GRANTS;
命令(在回答上述)幫我想出解決辦法。
我們使用JAWS DB MYSQL,但其他託管mysql提供程序可能使用相同的方法。
這可能是一個特權問題。 – Nishant 2011-04-18 05:48:37
檢查授權所有特權的mysql帳戶的權限 – Harish 2011-04-18 05:50:41
向我們顯示您的PHP代碼。這很可能是一個特權問題。該腳本需要以具有INSERT INTO表(或所有數據庫)的權限的用戶身份登錄到MySQL。 – 2011-04-18 05:55:18