Can't create/write to file '/tmp/MLjnvU95' (Errcode: 13 - Permission denied)

来源:https://www.cnblogs.com/kerrycode/archive/2018/11/07/9922950.html
-Advertisement-
Play Games

今天一個同事反饋往一個MySQL資料庫導入數據時,報“ERROR 1 (HY000): Can't create/write to file '/tmp/MLjnvU95' (Errcode: 13 - Permission denied)”這樣的錯誤,如下所示: uery OK, 0 rows a... ...


今天一個同事反饋往一個MySQL資料庫導入數據時,報ERROR 1 (HY000): Can't create/write to file '/tmp/MLjnvU95' (Errcode: 13 - Permission denied)這樣的錯誤,如下所示:

 

 

uery OK, 0 rows affected (0.03 sec)

 

ERROR 1 (HY000): Can't create/write to file '/tmp/MLjnvU95' (Errcode: 13 - Permission denied)

ERROR 1 (HY000): Can't create/write to file '/tmp/MLPzmIbJ' (Errcode: 13 - Permission denied)

ERROR 1 (HY000): Can't create/write to file '/tmp/MLdpJwKm' (Errcode: 13 - Permission denied)

ERROR 1 (HY000): Can't create/write to file '/tmp/MLB7FTT0' (Errcode: 13 - Permission denied)

ERROR 1 (HY000): Can't create/write to file '/tmp/ML1wcUAF' (Errcode: 13 - Permission denied)

ERROR 1 (HY000): Can't create/write to file '/tmp/MLYjOzPk' (Errcode: 13 - Permission denied)

ERROR 1 (HY000): Can't create/write to file '/tmp/ML7gi9z0' (Errcode: 13 - Permission denied)

ERROR 1 (HY000): Can't create/write to file '/tmp/ML6nezQG' (Errcode: 13 - Permission denied)

 

clip_image001

 

 

個人使用source script.sql導入數據時,也是遇到這個錯誤,如上截圖所示。從這個錯誤提示,可以明顯看出是MySQL沒有許可權對/tmp進行操作,

 

 

查看系統變數tmpdir,如下所示,tmpdir變數指定路徑為/tmp

 

 

mysql> show variables like 'tmpdir';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir        | /tmp  |
+---------------+-------+
1 row in set (0.00 sec)
 
 
 
[root@mylx01 ~]# ls -lh /tmp
total 20M
-rw-rw-r--. 1 root root  20M Nov  7 12:04 cccc_user.sql
-rw-r--r--. 1 root root   57 Nov  7 02:00 percona-version-check
-rw-------. 1 root root 2.0K Nov  2 21:38 tmpP4BN3H
-rw-------. 1 root root 2.0K Oct 31 21:40 tmpusdOhs
-rw-------. 1 root root 2.0K Oct 30 21:36 tmp_WBZNO
-rw-------. 1 root root 2.1K Oct 29 21:38 tmpXcXptG
-rw-------. 1 root root 2.0K Nov  5 21:40 tmpyqSR0U
-rw-------. 1 root root 2.1K Oct 28 21:42 tmpZjNjtu

 

 

我們可以修改/tmp目錄的許可權; 或者修改資料庫的臨時目錄來解決這個問題:

 

1:在配置文件my.cnf中修改資料庫的臨時目錄,然後需要重啟MySQL資料庫

 

tmpdir = /var/lib/mysql

 

2:修改/tmp目錄許可權

 

chmod 1777 /tmp

chmod 777 /tmp

 

 

那麼MySQL使用tmpdir來做什麼呢?tmpdir是MySQL存臨時文件的目錄的路徑名。如果未設置變數tmpdir,MySQL將使用系統的預設值,通常為/tmp、/var/tmp或/usr/tmp。更多詳細信息,可以參考官方文檔Where MySQL Stores Temporary Files的詳細介紹:

 

 

MySQL arranges that temporary files are removed if mysqld is terminated. On platforms that support it (such as Unix), this is done by unlinking the file after opening it. The disadvantage of this is that the name does not appear in directory listings and you do not see a big temporary file that fills up the file system in which the temporary file directory is located. (In such cases, lsof +L1 may be helpful in identifying large files associated with mysqld.)

When sorting (ORDER BY or GROUP BY), MySQL normally uses one or two temporary files. The maximum disk space required is determined by the following expression:

 

(length of what is sorted + sizeof(row pointer))* number of matched rows

 * 2

 

The row pointer size is usually four bytes, but may grow in the future for really big tables.

For some SELECT queries, MySQL also creates temporary SQL tables. These are not hidden and have names of the form SQL_*.

DDL operations that rebuild the table and are not performed online using the ALGORITHM=INPLACE technique create a temporary copy of the original table in the same directory as the original table.

 

Online DDL operations may use temporary log files for recording concurrent DML, temporary sort files when creating an index, and temporary intermediate tables files when rebuilding the table. For more information, see Section 15.12.3, “Online DDL Space Requirements”.

 

InnoDB user-created temporary tables and on-disk internal temporary tables are created in a temporary tablespace file named ibtmp1 in the MySQL data directory. For more information, see Section 15.6.3.5, “Temporary Tablespaces”.

 

 

 

MySQL會以隱含方式創建所有的臨時文件。這樣,就能確保中止mysqld時會刪除所有臨時文件。使用隱含文件的缺點在於,在臨時文件目錄所在的位置中,看不到占用了文件系統的大臨時文件。

 

進行排序時(ORDER BYGROUP BY),MySQL通常會使用1個或多個臨時文件。所需的最大磁碟空間由下述表達式決定:

 

(length of what is sorted + sizeof(row pointer))

 

* number of matched rows

 

* 2

 

row pointer(行指針)的大小通常是4位元組,但在以後,對於大的表,該值可能會增加。

 

對於某些SELECT查詢,MySQL還會創建臨時SQL表。它們不是隱含表,並具有SQL_*形式的名稱。

 

ALTER TABLE會在與原始表目錄相同的目錄下創建臨時表。

 

如果記憶體臨時表超出了限制,MySQL就會自動地把它轉化為基於磁碟的MyISAM表,存儲在指定的tmpdir目錄下。

 

 

 

 

 

參考資料:

 

https://dev.mysql.com/doc/refman/8.0/en/temporary-files.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、持久化統計信息的意義: 統計信息用於指導mysql生成執行計劃,執行計劃的準確與否直接影響到SQL的執行效率;如果mysql一重啟 之前的統計信息就沒有了,那麼當SQL語句來臨時,那麼mysql就要收集統計信息然後再生成SQL語句的執行 計劃。如果能在關閉mysql的時候就把統計信息保存起來,那 ...
  • 一 需求描述 我們知道數據是公司的重要資產,業務的系統化、信息化就是數字化。數據高效的存儲與查詢是系統完善和優化的方向,而資料庫的穩定性、可靠性是實現的基礎。高可用和RPO(RecoveryPointObjective,複原點目標,指能容忍的最大數據丟失量)是衡量一個資料庫優劣的重要指標。作為一個D ...
  • redis持久化 1.redis持久化介紹 我們知道redis性能之所以強悍,是因為redis在運行時將數據都存放在了訪問效率遠高於硬碟的記憶體之中。可是這帶來了新的問題:在redis或者外部系統重啟時,記憶體中的數據將會丟失,由於目前的記憶體介質RAM是易失的,非正常的斷電也會導致數據的丟失。 在一些場 ...
  • @[toc] 方法一:修改配置文件 1. 在my.ini的[mysqld]欄位加入: skip grant tables ; 2. 重啟mysql服務,這時的mysql不需要密碼即可登錄資料庫; 3. 然後進入mysql(在命令行中修改密碼):     mys ...
  • 前段時間看了《高性能MySQL》中的選擇優化的數據類型,這裡主要是做一下筆記。 首先數據選擇有幾個簡單原則: 更小的通常更好。一般情況下,應該儘量使用可以正確存儲數據的最小數據類型。例如只需要存 0~200,tinyint unsigned 更好。更小的數據類型通常更快,因為它們占用更少的磁碟、記憶體 ...
  • @[toc] 一、MYSQL的安裝 1、打開下載的mysql安裝文件mysql 5.0.27 win32.zip,雙擊解壓縮,運行“setup.exe”。 2、選擇安裝類型,有“Typical(預設)”、“Complete(完全)”、“Custom(用戶自定義)”三個選項,選擇“Custom”,按“ ...
  • 一.概述 接著上篇繼續,這篇把數據結構之字典學習完, 這篇知識點包括:哈希演算法,解決鍵衝突, rehash , 漸進式rehash,字典API。 1.1 哈希演算法 當一個新的鍵值對 需要添加到字典裡面時,程式需要先根據“鍵值對”的鍵計算出哈希值和索引值,再根據索引值,將包含新“鍵值對”的哈希表節點放 ...
  • 顯式事務定義 顯式事務以 BEGIN TRANSACTION 語句開始,並以 COMMIT 或 ROLLBACK 語句結束。 備註 BEGIN TRANSACTION 使 @@TRANCOUNT 按 1 遞增。 BEGIN TRANSACTION 代表一點,由連接引用的數據在該點邏輯和物理上都一致的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...