2013-12-21 62 views
3

我想在OS X Mavericks上安裝mysql5(最新來自Oracle,通過.dmg)。我/opt/local/my.cnf看起來是這樣的:OS X Mavericks:my.cnf中定義的mysql套接字,但沒有創建

[client] 
socket=/tmp/mysql.sock 

[mysqld] 
socket=/tmp/mysql.sock 

[safe_mysqld] 
err-log=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

當我嘗試連接時,我得到如下:

$ mysql5 -u root -p 
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 

而且沒有創建/tmp/mysql.sock文件。

這裏是我的/tmp DIR:

$ ls -l /tmp 
[email protected] 1 root wheel 11 Oct 24 08:31 /tmp -> private/tmp 

我也試着通過命令行強制插座:

$ time sudo mysqld_safe5 --socket=/tmp/mysql.sock 
Password: 
131221 07:26:02 mysqld_safe Logging to '/opt/local/var/db/mysql5/Macintosh.local.err'. 
131221 07:26:02 mysqld_safe Starting mysqld daemon with databases from /opt/local/var/db/mysql5 
131221 07:17:26 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 

我知道這是讀conf文件,因爲如果我刪除它,我當我嘗試連接時獲取不同的插槽位置:

​​

但是,再次 運氣。我需要做些什麼才能讓套接字創建?

+0

顯然我有另外一個mysql正在運行,這解釋了爲什麼需要啓動mysqld_safe5 1m40s。殺死其他進程允許創建/tmp/mysql.sock,但是mysql5仍然返回錯誤'無法通過套接字連接到本地MySQL服務器'/ tmp/mysql.sock'' – Ovid

+0

經過大量研究並嘗試下面的解決方案,我終於放棄並嘗試了MacMiniVault的MySQL設置:https://github.com/MacMiniVault/Mac-Scripts/tree/master/mmvMySQL。 因此,我的問題消失了。 – Ovid

回答

0

嘗試使用dtrace查看mysqld是否實際打開套接字,如果是,則在哪裏。你也可以告訴服務器正在讀取哪些配置文件,儘管這似乎不是問題,因爲傳遞--socket = ...不起作用。

我習慣於在Linux上使用strace,但最近開始在工作中使用dtrace。這裏有一個非常簡單的例子,告訴你如何跟蹤打開的(2)調用,你可以修改它來跟蹤套接字的創建,或者只是所有的系統調用:https://github.com/tsibley/dtrace-scripts/blob/master/trace-open.d

1

更改你的/ tmp文件夾以獲得MySQL用戶的權限。 (chown mysql:mysql/tmp或者chmod 777/tmp可以解決你的問題。)