2011-11-23 54 views
7

我用Google搜索2天了,最初得到的Ubuntu 11.04 - 無法通過套接字「/var/run/mysqld/mysqld.sock」(13)

'/var/run/mysqld/mysqld.sock' (2) 

連接到本地MySQL服務器我解決了這個問題,通過使用:

sudo touch /var/run/mysqld/mysqld.sock 
sudo chown -R mysql /var/run/mysqld/ 

現在我得到的錯誤:

'/var/run/mysqld/mysqld.sock' (13) 

所以一切都具有正確的權限和文件是否存在。有什麼想法嗎?

[編輯]

得到它的工作,雖然我不確定如何。我做aa-logprofroot,沒有任何變化,生氣,然後重新設置它開始工作。

回答

5

您不能(絕對不能)用常規文件替換文件系統管道/var/run/mysqld/mysql.sock。您需要使用mkfifo(1)來創建客戶端用於與mysql服務器通信的pipe(7)

(13)可能意味着你有一個權限被拒絕錯誤返回,EACCES(通常具有十進制值13 - 是的,我已經看到了很多)。

如果文件系統權限配置正確,你可能會具有由mandatory access control工具拒絕訪問,如AppArmorSELinuxTOMOYO,或SMACK

AppArmor默認預裝在Ubuntu系統上,可能會拒絕對管道的訪問。檢查/var/log/syslog/var/log/audit/audit.logdmesg(1)輸出,看起來像這樣的消息:

type=AVC msg=audit(1320723925.179:45115): apparmor="DENIED" 
operation="open" parent=1 profile="/usr/sbin/ntop" 
name="/usr/share/ntop/html/PlotKit/excanvas.js" pid=1835 comm="ntop" 
requested_mask="r" denied_mask="r" fsuid=122 ouid=0 

(但隨着name=/var/run/mysqld/mysql.sock代替。)

如果你有這樣的錯誤信息,運行aa-logprofroot並回答問題。有關配置AppArmor的更多信息,請參見apparmor.d(5)聯機幫助頁或某些various wiki pages

+0

非常感謝。總是希望我花更多時間在MySQL上而不僅僅是查詢。 所以我得到這個錯誤,當我做mysql啓動「錯誤2002(HY000):無法通過套接字'/var/run/mysqld/mysqld.sock'(111)」連接到本地MySQL服務器。以前我在啓動mysql時沒有問題:/ –

+0

111104 11:54:40 [Note]插件'FEDERATED'被禁用。 InnoDB:初始化緩衝池,大小= 8.0M 111104 11:54:40 InnoDB:完成初始化緩衝池 111104 11:54:43 InnoDB:開始;日誌序號0 44233 111104 11:54:44 [注]事件調度器:加載0事件 111104 11:54:44 [注意]/usr/sbin/mysqld:準備連接。 版本:'5.1.54-1ubuntu4'socket:'/var/run/mysqld/mysqld.sock'端口:3306(Ubuntu –

+0

嘿,這看起來像一個改進;'111'是'連接被拒絕'。服務器重新創建套接字後?服務器配置爲使用該路徑名? – sarnold

0

您是否檢查過mysql服務器mysqld正在運行?另外,檢查系統消息日誌,看看它是否在抱怨什麼。

+0

它運行是的,雖然它目前不啓動。看到下面的評論。 –

0

您是否嘗試刪除.lock文件並重新啓動mysqld?

+0

這個.lock文件在哪裏? –

+1

rm/var/lock/subsys/mysql –

5

在我的情況下,運行mysqld_safe創建了一個新的mysqld.sock文件。

$ cd /etc/init.d/ 
$ mysqld_safe 

你可能不會得到及時回來,但如果您重新啓動會話,mysqld.sock文件將在某處。找到它與

$ sudo find/-type s | grep mysqld.sock 
+0

不錯,我得到這個錯誤(我猜),因爲我取消了一個巨大的改變表,我沒有找到任何鎖定文件,但mysqld_safe修復這個!謝謝。 – porfiriopartida

相關問題