上星期的發表會其實有一段小插曲,今天解決了就將它說明一下

當天早上一連上網站就看到

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


當下就知道是 MySQL 沒有起來,於是下指令將 MySQL 再 Start,沒有錯誤訊息 ~ 重新整理網頁仍然是連不到 MySQL ~



距離發表開始不到三分鐘,當下告訴 partner 時臉都綠掉了 ... 於是將整個發表的行程做了一些調整(也讓我領到了當天餐盒 XD,過去新竹二場我都是提前離開而沒有領到 )
後來發現原因是在 /tmp 這個目錄的權限沒有打開,才造成 mysql.sock 寫不進去因而啟動不了

而為什麼 /tmp 寫不進去呢,原因是最近有 hacker 會在 /tmp 下放入一些 perl 程式對系統做一些破壞,因此才將 /tmp 的權限鎖定不能寫入

因此為了解決讓 mysql.sock 可以正常寫入且又要避免 /tmp 不允許被植入惡意程式的方法就是

1. 更改 mysql.sock 被放置的地方

2. /tmp 依舊不讓它人去寫入

所以要新增或修改 /etc/my.cnf 如下

[mysqld]
datadir=/www/mysql/var // MySQL Data 所存放的位置
socket=/general/mysql/mysql.sock // 我所定義的地方
[mysql.server]
user=mysql
basedir=/www/mysql // 我 MySQL 所安裝的位置
[client]
socket=/general/mysql/mysql.sock // 我所定義的地方


此外在 php.ini 找到下面這一行並設定相關路徑

mysql.default_socket = /general/mysql/mysql.sock


OK ... 重新啟動後就大功告成 !!
arrow
arrow
    全站熱搜

    Bojack 發表在 痞客邦 留言(0) 人氣()