ホームページ >バックエンド開発 >PHPチュートリアル >PHP で localhost を使用した Mysql への接続に失敗した場合の解決策、localhostmysql_PHP チュートリアル
問題が見つかりました
昨日、同僚が Linux 環境をコンパイルしてインストールするのを手伝っていたときに、次の問題が発生しました:
WEBサーバーはApache、データベースはMySQLです。
そこで、データベースへの接続をテストするための PHP ページを作成しました。
http://localhost/test.php を開いてテストします
ヒント: ソケット経由でローカル MySQL サーバーに接続できません...
環境が正常であることを確認してください
データベースが起動していないのではないかと思い、MySQLが実行中であることを確認し、MySQLを再起動しました。
mysql -u root -p を使用して MySQL 操作インターフェイスに入ります/usr/local/php5/bin/php /web/test.php を直接使用してデータベースに接続します
Apacheも再起動しましたが、やはりダメです
疑問: コマンドは正常に実行されるのに、Web ページの実行に失敗するのはなぜですか
phpコマンドによる直接実行は成功するのに、Webページからの実行が失敗してしまい、落ち込んでいます。 apacheが原因なのでしょうか?インターネットで多くの情報を検索しましたが、解決策が見つかりませんでした。Apache を再コンパイルしてインストールしても問題は解決しません。
ローカルホストを127.0.0.1に正常に変更しました
localhost を 127.0.0.1 に変更した後、接続は成功しました。「localhost は失敗したが、127.0.0.1 は成功したのではないか?」というジレンマに陥り始めました。ping ローカルホスト アドレスは 127.0.0.1 です、そうです
ホストを開いて参加してください
ローカルホストの接続方法が異なるため
PHP でデータベースに接続するときに、localhost に入力するホストと他のホストの違いを理解するために、多くの情報を読み、最終的に次のことを学びました。ホストがlocalhostとして入力されると、mysqlは接続にUNIXドメインソケットを使用します
ホストが 127.0.0.1 として入力されると、mysql は tcp を使用して接続します
これは Linux ソケット ネットワークの機能です。Win プラットフォームにはこの問題はありません
。
my.cnf の [mysql] セクションに
を追加しますデータベースのパスワード 正しいですか?
$mysql=mysql_connect("localhost","ユーザー名","パスワード");
if($mysql){
echo "データベース接続成功";
}else{
echo "失敗";
}
http://www.bkjia.com/PHPjc/866672.html