%20%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%A7%20mysql.default_socket%20%E3%81%AE%E5%80%A4%E3%81%8C%E5%A4%89%E6%9B%B4%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
Mac OS Snow Leopard 10.6.4 でローカルに mySQL に接続しようとすると、エラーが発生します。mySQL 5.1.46 を実行しています。コンソールを使用してログインできます。PHP 5.3.2 を実行しており、ページはphpinfo()
正常に動作しています。PHP は実行されているので、コンソールと Sequel Pro の両方を使用して mySQL サーバーにログインできます。
そこで、ソケットの問題ではないかと考えました。/etc ディレクトリには php.ini はなく、php.ini.default があります。そこで、そこに入って、"default_socket" があるすべての場所を次のように変更しました。
/var/mysql/mysql.sock
に:
/tmp/mysql.sock
以下の場所で見かけます:
pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
phpMyAdmin に接続しようとすると、次のエラーが表示されます: エラーなしでセッションを開始できません。PHP および/または Web サーバーのログ ファイルに示されているエラーを確認し、PHP インストールを適切に構成してください。
ファイルを確認するとphpinfo()
、mySQL の下に次の内容が表示されます。
mysql.default_socket /var/mysql/mysql.sock /var/mysql/mysql.sock
Apache を再起動します...いや、コンピュータ全体を再起動します。それでも何も起こりません。mySQL が動作していることはわかっています。PHP が動作していることはわかっていますが、通信できません。
何か助けて?
答え1
PHPはphp.iniファイル(php.ini.defaultではない)を探してロードする必要があるので、php.ini.defaultをphp.iniに名前変更してみてください。Snow Leopard に Apache/PHP/MySQL をインストールする。
答え2
mysql または php の設定をいじりたくない場合は、次のハックを設定してください。
mkdir /var/mysql
sock は、mysql.sock の次の行に格納されます。
これにより、PHP が探している場所に、実際の mysql.sock に接続するエイリアスが作成されます。
答え3
mysql.sock を PHP に導入する
MySQL と Leopard で発生した問題の 1 つは、mysql.sock ファイルの場所にあります。以前は、このファイルのデフォルトの場所は /tmp ディレクトリでした。その場所は、現在 /var/mysql ディレクトリに移動されています。PHP はそこでファイルを探します。残念ながら、MySQL のデフォルトの場所により、ファイルは依然として古い場所に置かれます。/etc ディレクトリに my.cnf 構成ファイルを作成することで、この問題を解決できます。次の内容のファイルを /etc/my.cnf に保存します。
[クライアント] ソケット = /var/mysql/mysql.sock
[mysqld] ソケット = /var/mysql/mysql.sock
ターミナル ウィンドウで次のコマンドを入力して、sock ファイルのディレクトリを作成します。
sudo mkdir /var/mysql sudo chown _mysql /var/mysql
ソース:http://www.procata.com/blog/archives/2007/10/28/working-with-php-5-in-mac-os-x-105/
答え4
この問題を解決するために、次の操作を実行しました (Mac OS x) -
1.) まずApacheのWebルートに移動します(/etc/apache2/httpd.conf から利用可能なパス -> DocumentRoot私の場合は/Library/WebServer/Documents/でした。
1.1) その場所にshowphpconfig.phpを作成します。
2.) ブラウザでこのファイルにアクセスします:http://127.0.0.1/showphpconfig.php
これにより、Apacheサーバーが使用している設定ファイルが表示されます。
私の場合は/private/etc/php.ini
また、phpがmysqlのsockファイルを使用していることもわかりました。/var/mysql/mysql.sock
3.) php.ini ファイルのコピーを作成しました。それを開いて、mysql.sock が含まれる行をすべて見つけます。
これらの行をコピーして、以下のように新しいエントリを作成します。
;pdo_mysql.default_socket=/var/mysql/mysql.sock
pdo_mysql.default_socket=/tmp/mysql.sock
インプ最初の行の前の「;」は最初の行をコメントアウトします。
このような行が4行ほどあるはずです。
これで、mysqlソケットファイルが実際には/tmpフォルダに存在することをphpに伝えました。
4.) Apacheサーバーを再起動します -apachectl restart
そしてWordPressの設定画面が表示されます