MySql 備份還原
阿新 • • 發佈:2022-12-03
使用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