日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql error -1_【Mysql】SQLException: Got error -1 from storage engine 问题解决!

發布時間:2023/11/30 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql error -1_【Mysql】SQLException: Got error -1 from storage engine 问题解决! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

錯誤信息:

Caused by: java.sql.BatchUpdateException: Got error -1 from storage

engine

at

com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.

at

com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.

at

org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$.savePartition(JdbcUtils.scala:222)

at

org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$saveTable$1.apply(JdbcUtils.scala:289)

at

org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$saveTable$1.apply(JdbcUtils.scala:288)

at

org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$28.apply(RDD.scala:883)

at

org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$28.apply(RDD.scala:883)

at

org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1897)

at

org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1897)

at

org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:70)

at org.apache.spark.scheduler.Task.run(Task.scala:85)

at

org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:274)

at

at

at

Caused by: java.sql.SQLException: Got

error -1 from storage engine

at

com.mysql.jdbc.SQLError.createSQLException(SQLError.

at

com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.

at

com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.

at

com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.

at

com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.

at

com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.

at

com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.

at

com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.

... 14 more

解決方法:

是由于innodb_force_recovery的值不為0導致的

問題解決過程 :

①通過sql語句:show

variables like 'innodb_force_recovery';

查看它的值

②如果不為0則會導致某些操作被禁止

③將innodb_force_recovery修改為0

原理分析:

MySQL數據庫,當innodb表空間損壞時候,嘗試啟動數據庫不成功,可以使用innodb_force_recovery參?數進行強制啟動

在主配置文件my.cnf中添加

innodb_force_recovery=6

****************************

innodb_force_recovery參數解釋:

innodb_force_recovery影響整個InnoDB存儲引擎的恢復狀況,默認值為0,表示當需要恢復時執行所有的恢復操作。

當不能進行有效的恢復操作時,mysql有可能無法啟動,并記錄下錯誤日志。

innodb_force_recovery可以設置為1-6,大的數字包含前面所有數字的影響。

當設置參數值大于0后,可以對表進行select,create,drop操作,但insert,update或者delete這類操作是不允許的。

1(SRV_FORCE_IGNORE_CORRUPT):忽略檢查到的corrupt頁

2(SRV_FORCE_NO_BACKGROUND):阻止主線程的運行,如主線程需要執行full

purge操作,會導致crash

3(SRV_FORCE_NO_TRX_UNDO):不執行事務回滾操作。

4(SRV_FORCE_NO_IBUF_MERGE):不執行插入緩沖的合并操作。

5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存儲引擎會將未提交的事務視為已提交。

6(SRV_FORCE_NO_LOG_REDO):不執行前滾的操作。

***************************

修復表空間受損的表:

數據起來后,innodb類型的表不能寫操作,但可以讀,此時對表做check,查找到異常的表,讀取出來,導入到myisam表里面,drop原表

然后在my.cnf中去掉innodb_force_recovery的設置,重啟mysql

把myisam表轉成innodb表;

總結

以上是生活随笔為你收集整理的mysql error -1_【Mysql】SQLException: Got error -1 from storage engine 问题解决!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。