私は約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も変更されるのはなぜですか?
まず第一に、自作を使用して、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ソケットの正しいパスを設定することもできます。
この助けを願っています。
同様のエラーが発生し、ここに到達しました。 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
ありがとう!
わかりました、私はちょうどこの同じ問題に苦労して数時間を過ごしました。 OSX10.7.2を搭載したiMacにosx10.6用のMySql5.5.20(64ビット)のdmgファイルをインストールしましたが、/ tmp /mysql.sockがありませんでした。
答えは、dmgファイルに付属のMySQLStartupItem.pkgをインストールして、システムを再起動するだけであることが判明しました。これにより、起動時にデーモンが起動します(オプションであると期待していました)。
魔法のように、私の/tmp/mysql.sockファイルが表示され、すべてが順調です。
XAMPPの新規インストールでもこのエラーが発生していました。
コマンドラインに慣れていない人のために、別の方法があります。
上記のアドバイス(ありがとう)に基づいて、古い標準の「EasyFind」を使用してmy.cnfの最新バージョンを見つけました。エディターでファイルを開くと、ソケットファイルが次のことを指していることがわかりました。
ソケット=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
Navicatの詳細プロパティを更新しました/ソケットファイルを上記のパスとbingoに使用します。
これが誰かを助けることを願っています。
私もこの問題を抱えていたので、ここに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を再起動しようとしました。バム!今は動作します。
私はこれを言います、私はちょうどこれで私の車輪を回していたので、私は同僚に私を助けてもらう必要がありました。これが誰かの助けになることを本当に願っています。ありがとう!
自作でmysqlをインストールした場合は、単純なbrew services restart mysql
役立つかもしれません。
解決策を見つけました:
同じ問題が発生し、多くの検索を実行しましたが、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でテストしましたが、どちらも機能しました
うまくいけば、それはあなたのためにも働いています。