今天在Fedora 3 架設php + mysql
發現php 無法連線至mysql ,但可以直接透過console 介面 連線 mysql
而在php頁面回傳了以下訊息:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)
在網上查詢 有人是說mysql 未啟動,有人則是說並沒有/var/lib/mysql/mysql.sock
不過我發生的問題似乎都不是上述的原因
找到和自已最相近的答案,為以下兩個link
http://bugs.mysql.com/bug.php?id=12676
http://www.uplinux.net/article/2006/0815/article_1169.html
Fedora Core 3 在安裝時預設就會把SELinux的選項啟動
而這剛好應該是個Fedora Core 3 的BUG,
SELinux target policy的BUG,redhat並沒有為mySQL制定正確的target policy
所以導致無法連結
只要更新至selinux-policy-targeted-1.17.30-2.23以上的版本就能正常使用mySQL了
上述文件提供的下載連結目前都失效了,所以又找了一下發現有連結ok的
也在1.17.30-2.23之上版本
http://ftp.tn.edu.tw/Linux/apt/Fedora/FC3/RPMS.updates/
所以就下載 selinux-policy-targeted-1.17.30-3.19.noarch.rpm
下載完成後,就可執行以下指令
#rpm -Uvh selinux-policy-targeted-sources-1.17.30-3.19.noarch.rpm
如果你原來的系统安装了 selinux-policy-targeted-source,也需下載source的rpm文件
selinux-policy-targeted-sources-1.17.30-3.19.noarch.rpm
像我就要一併下載
checkpolicy-1.17.5-1.2.i386.rpm
policycoreutils-1.18.1-2.12.i386.rpm
因為source 也會需要更新這兩個package
再來就更新mysql相關的target policy更新mysql相關的targetpolicy
# rpm -q -l mysql-server | restorecon -R -v -f –
# rpm -q -l mysql | restorecon -R -v -f –
重起mysql的服務就會正常了.. ^^
最後,後記…..只怪自己用太舊的Linux OS…..
近期留言