可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have a database including some tables, when I want to delete data from tables which includes an "Auto Increment" field, using this query:
delete from test.table1 ;
I got this error:
Error Code: 1030Got error -1 from storage engine
Why this happens? What should I do?
回答1:
Try to change innodb_force_recovery
value (in your /etc/my.cnf
).
Error -1 says NOTHING. Without your tables creation code (SHOW CREATE TABLE table_name
) can not say where exactly problem is.
回答2:
You also get this error, if your file system is full.
回答3:
I just got this one and it was due to the fact that the new folder on the SSD drive where I wanted the new table to go was created under root and mysql runs under the mysql user. So
cd to your data folder
chown mysql .
and it solves the problem.
回答4:
Go to /etc/my.cnf or /etc/mysql/my.cnf
Comment line innodb_force_recovery=1
Save the file and restart mysql
回答5:
try repair table (ISAM engine)
if its innodb engine look at this link :
http://www.mysqlperformanceblog.com/2008/07/04/recovering-innodb-table-corruption/
回答6:
I also met this error while deleting 2 rows from an Innodb table, only 2 particular rows can't be deleted. I Google the error, but can't find better solutions.
So i tried this:
Create a backup for my db (exporting db).
Re-Installing MySQL Server
Restoring my db (importing db).
Then there is no -1 engine error on deletion/update.
Success...
I think the error may occur due to invalid configuration of MySQL server with respect to storage engines.
Thank You....
回答7:
FIXED!! check your memory by df -h
. also check inodes df -i
. if its full, delete some files.
回答8:
I see no answer has been selected as the right answer.
I found that in our database config we had the innodb_force_recovery configured.
Once we disabled / commented it out, the queries ran as expected.
回答9:
Find the value of innodb_force_recovery
at /etc/mysql/my.cnf
(for linux). if it is 0, remove it or comment it out.
Example
innodb_force_recovery = 0
change it to:
#innodb_force_recovery = 0
Reference:
InnoDB: innodb_force_recovery is on: we do not allow InnoDB: database
modifications by the user.
回答10:
For me the problem was solved by restarting my database (in my case Mariadb).
systemctl restart mariadb
回答11:
Just modify to
#innodb_force_recovery = 1
It works to me.
回答12:
Here's how I solved it, I just had the same error:
- Open Control Panel
- Select Unistall Programs
- Right click and select"Uninstall" on Microsoft Visual Basic Tools
- Restart your PC