1. 程式人生 > 其它 >MySql 備份還原

MySql 備份還原

使用SQLyog 轉儲備份SQL檔案,在另外一臺電腦還原

1.還原過程中遇到 Error Code: 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.

原因:

①. mysql 預設的 page 最大是 16k,而 page 中單行最大不能超過 8k
②. text 或者 blob 欄位太多也會導致一行資料大於 8k,因為 innodb 預設的 approach(羚羊)儲存格式會把每個 blob 欄位的前 864 個位元組儲存在 page 裡。這樣的話一旦有很多個text 或者 blob欄位,還是有可能超過 8k

解決:

①、可以嘗試將 varchar 欄位改成 text  或者 blob

②、表結構需要重新設計,減少欄位個數

③、修改 my.ini 配置檔案,關閉資料庫 嚴格模式

  查詢分析器中查詢看嚴格模式是否開啟,如果開啟(ON),則需要關閉,

show variables like '%innodb_strict_mode%';

  找到MySQL的配置檔案位置,如C:\Program Files\MariaDB 10.6\data\my.ini,可檢視系統變數找到安裝目錄。

  右鍵編輯,在[mysqld]配置項下面新增一行,儲存,然後重啟服務。

[mysqld]
innodb_strict_mode=0