MySQL Error Code: 1030Got error -1 from storage en

2020-07-10 07:32发布

问题:

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:

  1. Create a backup for my db (exporting db).

  2. Re-Installing MySQL Server

  3. Restoring my db (importing db).

  4. 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:

  1. Open Control Panel
  2. Select Unistall Programs
  3. Right click and select"Uninstall" on Microsoft Visual Basic Tools
  4. Restart your PC