web-dev-qa-db-ja.com

MacでMySQLに接続できません-mysql.sockファイルがありません

私は約1週間前にMacOS 10.6にMySQLをインストールし、少し遊んだ後、問題なく動作するようになりました。 python MySQLdbと統合し、Sequel Proをデータベースに接続しました。ただし、phpはサーバーにアクセスしませんでした。php.iniファイルを/ etc /に追加した後でもSequel Proが使用していたのと同じ靴下/tmp/mysql.sockに向けて送信しました。

しかし、今はローカルサーバーにまったくアクセスできません。私の知る限り、mysql.sockファイルは、/ tmp /やその他の場所ではなく、コンピューターのどこにもありません。

ターミナルからmysqlサーバーを起動できますが、1分後に自動的にログアウトします。

110425 17:36:18 mysqld_safe Logging to '/usr/local/mysql/data/dn0a208bf7.sunet.err'.
110425 17:36:18 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
110425 17:37:58 mysqld_safe mysqld from pid file /usr/local/mysql/data/dn0a208bf7.sunet.pid ended

コマンドラインから「mysql」を呼び出そうとすると(今日は完全に機能していました):

ERROR 2002 (HY000): Can\'t connect to local MySQL server through socket '/tmp/mysql.sock' (2)

PHPエラーはもちろん似ています:

PHP Warning:  mysql_real_escape_string(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock)

また、mysqlインストールディレクトリ/ usr/local/mysqlに「my.cnf」ファイルがありません。 XAMPPに付属するmysqlインストール用のmy.cnfファイルがあります。これらにもデフォルトのソケットが「/tmp/mysql.sock」としてリストされていますが、手動で変更する必要がありました。

何が起こっているのかアイデアはありますか? php.iniファイルを変更すると、Sequel Proも変更されるのはなぜですか?

8
tchaymore

まず第一に、自作を使用して、Macにサードパーティのライブラリまたはツールをインストールすることをお勧めします。ご覧ください: http://mxcl.github.com/homebrew/

それ以外の場合は、問題について、Macのmysqlソケットがどこにあるかを検索し、それを/ tmpにシンボリックリンクすることができます。

ターミナルで次のようなものを試してください:

locate mysql | grep sock

あなたは次のようなものを手に入れるでしょう:

/the/path/to/mysql.sock

次に行います:

ln -s /the/path/to/mysql.sock /tmp/mysql.sock

これは機能するはずです。

また、php.iniファイルを編集して、mysqlソケットの正しいパスを設定することもできます。

この助けを願っています。

20
Riba

同様のエラーが発生し、ここに到達しました。 OSX10.9.5を使用しています。これで私の問題は解決しました(誰かに役立つことを願っています)。

1)Sudo mkdir/var/mysql

2)Sudo ln -s /private/tmp/mysql.sock /var/mysql/mysql.sock

詳細情報: http://glidingphenomena.blogspot.com.br/2010/03/fixing-warning-mysqlconnect-cant.html

ありがとう!

5
Duda Nogueira

わかりました、私はちょうどこの同じ問題に苦労して数時間を過ごしました。 OSX10.7.2を搭載したiMacにosx10.6用のMySql5.5.20(64ビット)のdmgファイルをインストールしましたが、/ tmp /mysql.sockがありませんでした。

答えは、dmgファイルに付属のMySQLStartupItem.pkgをインストールして、システムを再起動するだけであることが判明しました。これにより、起動時にデーモンが起動します(オプションであると期待していました)。

魔法のように、私の/tmp/mysql.sockファイルが表示され、すべてが順調です。

4
Spence-

XAMPPの新規インストールでもこの​​エラーが発生していました。

コマンドラインに慣れていない人のために、別の方法があります。

上記のアドバイス(ありがとう)に基づいて、古い標準の「EasyFind」を使用してmy.cnfの最新バージョンを見つけました。エディターでファイルを開くと、ソケットファイルが次のことを指していることがわかりました。

ソケット=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

Navicatの詳細プロパティを更新しました/ソケットファイルを上記のパスとbingoに使用します。

これが誰かを助けることを願っています。

3
Ted Wichman

私もこの問題を抱えていたので、ここに2セントを投入しますが、私の状況はほとんど異常です。私のシステムには、Zend ServerCEとXAMPPの混合インストールがありました。私はMacOS Xを実行しています。そして、お尻が痛かったので、システムからZendを削除することにしました。

Zendを削除すると、両方が同じDBを使用していて、Zendがそれを持っていたため、私のシステムがおかしくなりました。 XAMPPのアンインストールと再インストールは役に立ちませんでした。トラブルシューティングを数時間行った後(文字通り完了しました)、システムでmy.cnfのすべてのコピーを検索する必要があることがわかりました。その理由は、mysqlがまだZend mysqlパスを検索しようとし続け、失敗していたためです。

だから私はそれを見つけるためにロケートを使用しました。システム上にファイルのDBを構築できるように、ロケートを開始する必要がありました(これまで使用したことがなかったため)。次に、「locate my.cnf」を実行し、「/ private/etc」で見つけました。そのため、ファイルの名前をmy.cnf.oldに変更し、MySQLを再起動しようとしました。バム!今は動作します。

私はこれを言います、私はちょうどこれで私の車輪を回していたので、私は同僚に私を助けてもらう必要がありました。これが誰かの助けになることを本当に願っています。ありがとう!

2
Patrick

自作でmysqlをインストールした場合は、単純なbrew services restart mysql役立つかもしれません。

0
Simon

解決策を見つけました:
同じ問題が発生し、多くの検索を実行しましたが、MySql構成ファイルを確認するまで問題を解決できませんでした。私の設定ファイルでは、ソケットは21行目にあり、パスは
"/ Applications/AMPPS/var/mysql.sock"

Amppsアプリケーションで、MySqlタブをクリックしてから、構成ボタンをクリックします。

設定ファイルは「/ Applications/AMPPS/mysql/etc」フォルダにもあります。

だから単に私は追加しました
'unix_socket' => '/ Applications/AMPPS/var/mysql.sock'、
mysql配列の私のdatabase.phpに、それは私のために働いた。
ホストラインの後。ローカルホストと127.0.0.1でテストしましたが、どちらも機能しました
うまくいけば、それはあなたのためにも働いています。

0
Martian.titan