mysql錯誤-修改mysql.sock位置,mysqlmysql.sock
在Mysql下有時候會出現mysql.sock位置錯誤,導致無法連結資料庫。
mac下報錯的時候:
首先修改my.cnf
位置在/etc/my.cnf下,假如沒有的話,去/usr/locate/mysql版本/my.cnf下修改,然後複製到/etc下。
修改為如下:
[client]socket = /tmp/mysql.sock[mysqld]socket = /tmp/mysql.sock
沒有[client]的話,自己添加~
然後重啟mysql服務,開啟mysql看看位置變了沒~用,status查看
mysql Ver 14.14 Distrib 5.6.17, for osx10.7 (x86_64) using EditLine wrapperConnection id:24Current database:Current user:root@localhostSSL:Not in useCurrent pager:lessUsing outfile:''Using delimiter:;Server version:5.6.17 MySQL Community Server (GPL)Protocol version:10Connection:Localhost via UNIX socketServer characterset:utf8Db characterset:utf8Client characterset:utf8Conn. characterset:utf8UNIX socket:/tmp/mysql.sockUptime:15 min 51 sec
然後修改php.ini(位置為/etc/php.ini)沒有的話,copy一個php.ini.default
在:
pdo_mysql.default_socket=/tmp/mysql.sockmysql.default_socket = /tmp/mysql.sockmysqli.default_socket = /tmp/mysql.sock
這三個全部修改好~
然後
sudo apachectl stopsudo apachectl start
就可以了~
看phpinfo()下mysql.sock是否變了~
問更改linux下mysql的目錄,有許多文檔說要更改mysqlsock路徑,這個必須,不更改影響使用不?
mysql.sock預設的是在/var/lib/mysql, 如果該目錄許可權不足, mysql就因無法建立該檔案而運行不了, 你可以在[mysqld]下面加入mysql.sock的path
vi /etc/my.cnf
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
...
mysqlsock位置不在/tmp下,安裝DZ時資料庫伺服器那該怎填?
coshep說的是一種情況,另外一種情況就是你系統裡面可能有2個MYSQL,而啟動的時候沒有正確載入my.cnf檔案。
你檢查下my.cnf裡面的datadir位置是否正確。