MySQL Error Code: 1030Got error -1 from storage engine; I've tried to delete data from my database
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?
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.
You also get this error, if your file system is full.
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.
Go to /etc/my.cnf or /etc/mysql/my.cnf
Comment line innodb_force_recovery=1
Save the file and restart mysql
try repair table (ISAM engine)
if its innodb engine look at this link :
http://www.mysqlperformanceblog.com/2008/07/04/recovering-innodb-table-corruption/
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....
FIXED!! check your memory by df -h
. also check inodes df -i
. if its full, delete some files.
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.
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.
For me the problem was solved by restarting my database (in my case Mariadb).
systemctl restart mariadb
Just modify to
#innodb_force_recovery = 1
It works to me.
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
精彩评论