-ShareBody資訊站"> ">

top
Loading...
problems-with-mysql-sock">
A.4.5. 如何保護或更改MySQL套接字文件/tmp/mysql.sock

對于服務器用來與本地客戶端進行通信的Unix套接字文件,其默認位置是/tmp/mysql.sock。這有可能導致問題,原因在于,在某些版本的Unix上,任何人都能刪除/tmp目錄下的文件。

在大多數Unix版本中,可對/tmp目錄進行保護,使得文件只能被其所有這或超級用戶(根用戶)刪除。為此,以根用戶身份登錄,并使用下述命令在/tmp目錄上設置粘著位:

shell> chmod +t /tmp

通過執行ls -ld /tmp,可檢查是否設置了粘著位。如果最后一個許可字符是“t”,表明設置了粘著位。

另一種方法是改變服務器創建Unix套接字文件的位置。如果進行了這類操作,還應讓客戶端程序知道文件的位置。能夠以多種不同方式指定文件位置:

在全局或局部選項文件中指定路徑。例如,將下述行置于文件/etc/my.cnf中:

[mysqld]
socket=/path/to/socket
 
[client]
socket=/path/to/socket

請參見4.3.2節,“使用選項文件”。

在運行客戶端程序時,在命令行上為mysqld_safe指定--socket”選項。

MYSQL_UNIX_PORT環境變量設置為Unix套接字文件的路徑。

重新從源碼編譯MySQL,以使用不同的默認Unix套接字文件位置。運行configure時,用“--with-unix-socket-path”選項定義文件路徑。請參見2.8.2節,“典型配置選項”。

用下述命令連接服務器,能夠測試新的套接字位置是否工作:

shell> mysqladmin --socket=/path/to/socket version
作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/problems.html
北斗有巢氏 有巢氏北斗