Mysql

mysqld.sock 應該包含什麼,為什麼我沒有呢?

  • April 15, 2020

有誰知道為什麼我/var/run/mysqld/mysqld.sock安裝(或重新安裝)MySQL 5.1 時我的套接字文件不會出現在我的電腦上?

現在,當我嘗試使用 mysqld 啟動伺服器時,我收到類似的錯誤Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect,但是創建一個具有該名稱的空白文件(如 ubuntu 論壇上所建議的那樣)是不成功的。

在我不久前升級到 natty 之前,我的 mysql 和 postgres 都執行良好;我花了幾個小時瀏覽這兩個數據庫,試圖弄清楚發生了什麼。我可以放棄 postgres,但如果沒有 mysql 的工作副本,我將無法工作。

最奇怪的部分:我用的是Kubuntu,我的理解是KDE使用mysql來儲存使用者權限等。我沒有遇到任何奇怪的權限問題;我可以認為這意味著(不知何故?)MySQL 確實在工作嗎?

也許這些套接字文件位於 natty 的不同位置?重新安裝新鮮的作業系統會更容易嗎?在這一點上,我願意接受任何不會浪費我時間的建議。

套接字文件實際上並不包含數據,而是傳輸它。它是一種特殊的、不尋常的文件類型,由特殊的系統呼叫/命令創建。它不是一個普通的文件。

它就像一個管道,伺服器和客戶端可以用來連接和交換請求和數據。此外,它僅在本地使用。它的意義僅僅是作為文件系統中約定的集合位置。

創建一個普通的舊文件並將其放在該位置實際上可能會干擾創建它的伺服器……從而阻止本地客戶端連接到伺服器。

我的建議是刪除您放置在該位置的所有文件。特殊套接字文件由伺服器創建。

引用自:https://serverfault.com/questions/279366