MySQL主從卡庫問題分析
1、slave_load_tmpdir 檔案夾權限問題造成的卡庫
1、 發現問題
做雙主從時,因為老主庫缺沒有這個庫和表,需要建立庫和表。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiUjMxAjMBJ0NFR0MyYkR2IENzIEN1UDR1YUNxAjRChjQvwlM0UTMvw1clJ3LcN3d59CXt92Yu8WYkV3b55SZ09mbvw1LcpDc0RHaiojIsJye.jpg)
在從庫上建立庫和表後,跳過上邊的錯 (SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1) , 重新開機主從,發現主從報下邊錯誤
2、分析問題
從錯誤字面上分析,資料庫sql_load沒有權限去在tmp 下寫資料。( Unable to use slave's temporary directory /tmp - Can't create/write to file '/tmp/SQL_LOAD-' (Errcode: 13))
去檢視/tmp d的權限,發現隻有root 使用者組有權限寫入,資料庫使用者組無權限寫入
3、解決問題, 将/tmp 目錄的寫權限給mysql使用者, 重新開機主從複制發現問題解決。
問題原因: /tmp是slave_load_tmpdir 的目錄, slave_load_tmpdir 的作用就是load資料和臨時表目錄。當主庫load資料時會那一份到從庫的slave_load_tmpdir 目錄下進行load, 當資料庫需要使用臨時表的時候,也會在slave_load_tmpdir 産生相應的表。