簡體   English   中英

PDOException:SQLSTATE [HY000]:一般錯誤:3 寫入文件“/tmp/MYHKgYpv”時出錯(錯誤代碼:28)

[英]PDOException: SQLSTATE[HY000]: General error: 3 Error writing file '/tmp/MYHKgYpv' (Errcode: 28)

我已經安裝了Visitor Module Drupal 7。我已經使用 www.domain.com/visitors 查看了報告。 所有報告都運作良好。 但是當我查看用戶活動報告時,它顯示以下錯誤。

PDOException:SQLSTATE [HY000]:一般錯誤:3 寫入文件“/tmp/MYHKgYpv”時出錯(Errcode:28):SELECT u.name AS name,u.uid AS uid,COUNT(DISTINCT v.visitors_id)AS hits,COUNT (DISTINCT n.nid) 作為節點,COUNT(DISTINCT c.cid) 作為來自 {users} 的評論 u LEFT OUTER JOIN {visitors} v ON u.uid=v.visitors_uid LEFT OUTER JOIN {node} n ON u.uid= n.uid LEFT OUTER JOIN {comment} c ON u.uid=c.uid WHERE (visitors_date_time BETWEEN:db_condition_placeholder_0 AND:db_condition_placeholder_1) GROUP BY u.name, u.uid, v.visitors_uid, n.uid, c.uid ORDER BY 命中 DESC LIMIT 10 OFFSET 0; PagerDefault->execute() 中的數組 ( [:db_condition_placeholder_0] => 1451606400 [:db_condition_placeholder_1] => 1452556799 (/home/legalmon/public_html/includes/pager.inc 第 79 行)。

我該如何解決這個問題?

您應該在觸發“USER REPORT 查詢”時不斷檢查您的 /tmp 文件夾大小。

如果 /tmp 目錄被 100% 使用,您將遇到此錯誤。

解決方案是將一些 GB 掛載到 /tmp 目錄或設置 MySQL tmp 的新位置。

設置新位置:

Create a directory anywhere you have enough space(can be the "/" root directory)

# mkdir /home/mysqltmp

Give write permissions

# chmod 1777 /home/mysqltmp

Open MY.CNF File

# /etc/my.cnf 

Add below line under the [mysqld] section and save the file

# tmpdir=/home/mysqltmp

Restart MySQL

# /etc/init.d/mysql restart

Check new location

# mysqladmin var | grep tmpdir

This should show following return.

| slave_load_tmpdir                       | /home/mysqltmp
| tmpdir                                  | /home/mysqltmp

完畢 !!

嘗試刷新頁面。

首先,使用df -h檢查存儲設備是否快滿了,如果是這種情況,那么您需要釋放一些空間。

刪除舊數據庫可能是解決方案,但如果清除后您沒有看到可用空間發生變化,則需要執行以下操作:

一些 MySQL 配置存在一個常見問題,其中所有數據庫都存儲在一個名為ibdata1的文件中。 發生的情況是,當您刪除舊數據庫時,該文件不會自動收縮。

檢查/var/lib/mysql/中文件的大小,如果您發現刪除一些舊數據庫后ibdata1大小沒有改變,那么您需要進行一些清理。

腳步:

  1. 備份你的數據庫
  2. 刪除你的數據庫
  3. 使用rm /var/lib/mysql/ibdata1
  4. 使用rm /var/lib/mysql/ib_logfile*刪除 ib_logfile(s)
  5. 使用service mysql restart重啟 MySQL
  6. 導入備份的數據庫。

現在, /tmp應該有足夠的空間來增長和執行您的查詢!

祝你好運!

筆記:

有關清除的更多詳細信息,請在此處訪問 John P 的回答: https ://stackoverflow.com/a/3456885/2188595

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM