[Mac][MySQL]XAMPPいれてMySQL動かそうとしたら「Can't connect to local MySQL server through socket '/tmp/mysql.sock'」って言われた



ちょっとPHPとデータベースを使ってサイト的なものを作る事になったので、XAMPP for Mac OS X入れてみました。





いれましょう。



こちらからダウンロードしたdmgファイルを解凍します。

実際にxamppを起動するとこれ



が出てきますので、とりあえずApacheを起動してみましょう。

ブラウザから「localhost」にアクセスして、



このページまで到達できればokです。

初めてアクセスした場合は、セキュリティが穴だらけです。
セキュリティのページで

$  /Applications/XAMPP/xamppfiles/xampp security

実行しろよとか言われているので、ターミナルから実行しましょう。

もし

$  You need to be root to perform this action.

と表示されたら「管理者権限で実行したまえ」と言われているので、

$  sudo /Applications/XAMPP/xamppfiles/xampp security

上記のコマンドのようにsudoつけてあげると解決すると思います。

あとは表示される説明の通りに任意のパスワードを指定していけばOKです。

ではいざ、ターミナルからMySQLへアクセス!しようと思ったら。

$  Can't connect to local MySQL server through socket '/tmp/mysql.sock'

こんなんが出ました。
どうやらソケットを/tmp/mysql.sockに投げても繋がらない?と言っているようなので、

/Applications/XAMPP/xamppfiles/etc/my.cnf

をいじります。

僕の場合はファイルの後半に
[mysqlid]
[client]
のタグがあったので、それぞれに
socket=/tmp/mysql.sock

を追加。(もし既に他のディレクトリが指定されていた場合はコメントアウトしてください。)
しようと思ったんですが、xamppのファイルの中にもMySQLのファイルってあるんですよね。今回はxamppのMySQLを使用するので、

socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

でパスを通しました。

これでいけるやろーと思ったら。

$  Can't connect to local MySQL server through socket '/tmp/mysql.sock'




何故。







…(´・ω・`)




Σ(´・ω・`)←よく考えたらXAMPP入れる前にmysqlを単独で入れていた事を思い出す。







XAMPP入れる時はそんなことしなくて良いのですが、単独でMySQLを入れる場合は、シェルにパスを通す必要があります。
僕の場合はホーム直下の.bash_profileにパスを追加しました。

確認してみると案の定単独MySQLのパスが設定されていたので、
export PATH=$PATH:/Applications/XAMPP/xamppfiles/bin

に書き直し。

ターミナルを再起動したら、無事MySQLにアクセスできるようになりました。


(ちなみにMAMP使ってみたらこれらの問題が一切発生しなかったので、そっち使った方が楽かもしれません。)





参考

「Can't connect to local MySQL server through socket」エラーについて

MacからMySQLをアンインストールする方法 - マオの徒然開発日誌

In , by toku_toku3, 2012年7月10日火曜日


Leave a Reply