MySQL不能啟動 Can't start server : Bind on unix socket: Permission denied


轉載博客地址:http://www.linuxidc.com/Linux/2010-04/25709.htm

MySQL服務器突然不能啟動,查看最后的啟動日志如下:

080825 09:38:04 mysqld started
080825 9:38:04 [ERROR] Can't start server : Bind on unix socket: Permission denied
080825 9:38:04 [ERROR] Do you already have another mysqld server running on socket: /var/mysql.sock ?
080825 9:38:04 [ERROR] Aborting

080825 9:38:04 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

080825 09:38:04 mysqld ended

my.cnf 配置如下:
[mysqld]
datadir=/usr/local/mysql/data
socket=/var/mysql.sock

[mysql]
socket=/tmp/mysql.sock
[mysql.server]
user=mysql
basedir=/usr/local/mysql

[safe_mysqld]
err-log=/usr/local/mysql/mysqld.log
pid-file=/usr/local/mysql/mysqld.pid

根據日志文件顯示,首先檢查運行權限,再看一下/var/mysql.sock,發現/var/mysql.sock目錄下並沒有該文件,是否是沒有權限 寫/var目錄?OK,那就用root用戶運行一下safe_mysqld,啟動正常。使用mysql連接數據庫,提示錯誤,連接不到數據庫服務器, /tmp目錄下沒有mysql.sock這個文件,到這里,基本清楚了Mysql客戶端和服務器端在本機的通信方式了,通過一個名為mysql.sock 文件來進行初始化通信的,因此該文件所存放的目錄必須雙方都有權限可以訪問到,而且服務器在啟動時需要寫該文件,如果my.cnf中這兩項配置不正確,就 會出現Permission denied等類似錯誤。將配置文件修改如下,就沒有問題了。

[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock

[mysql]
socket=/tmp/mysql.sock
[mysql.server]
user=mysql
basedir=/usr/local/mysql

[safe_mysqld]
err-log=/usr/local/mysql/mysqld.log
pid-file=/usr/local/mysql/mysqld.pid
如果還是不行,那就需要 chmod  777   /tmp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM