Can t connect to local MySQL server through socket /tmp/mysql.sock

來源:互聯網
上載者:User

不能通過'/tmp/mysql.sock'連到伺服器,而php標準配置正是用過'/tmp/mysql.sock',但是一些mysql安裝方法將

mysql.sock放在/var/lib/mysql.sock或者其他的什麼地方,你可以通過修改/etc/my.conf檔案來修正它


首先是mysqld啟動不了,

我通過vim /etc/my.cnf,修改了[mysqld]選項下面的socket的值
socket=/var/lib/mysql/mysql.sock
ok,mysqld可以啟動了

接下來,是mysql啟動不了,同樣,vim /etc/my.cnf,添加了如下指令碼:

[mysql]

socket=/var/lib/mysql/mysql.sock

然後,mysqladmin啟動不了,還是一樣,在[mysqladmin]下面socket值設定為同樣的路徑
ok,可以啟動了

最後,用php串連的時候,又出現這個問題了

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

我首先想到的是,在/etc/php.ini修改mysql.default_socket的值,在這個檔案中,關於mysql.default_socket的

值的說明是這樣的,

; Default socket name for local MySQL connects.  If empty, uses the built-in MySQL defaults.
這個值一開始是空的,也就是說,如果我們不主動去修改的話,php將會使用內建在mysql中的預設值
於是,我修改了這個值,設定為:

mysql.default_socket=/var/lib/mysql/mysql.sock

然後我重新啟動apache,結果無效;reboot系統,結果無效

我火大了,php就非得去串連/tmp/mysql.sock,可是我的系統裡面就是沒有這個路徑下的這個檔案,那我就給你鏈

接一個,於是我做了下面的操作,

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock


怎樣保護“/tmp/mysql.sock   ”不被刪除

如果你有這個問題,事實上任何人可以刪除MySQL通訊通訊端“/tmp/mysql.sock”,在Unix的大多數版本上,你能

通過為其設定sticky(t)位來保護你的“/tmp”檔案系統。作為root登入並且做下列事情:

shell>   chmod   +t   /tmp

這將保護你的“/tmp”檔案系統使得檔案僅能由他們的所有者或超級使用者(root)刪除。

你能執行ls   -ld   /tmp檢查sticky位是否被設定,如果最後一位許可位是t,該位被設定了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.