ホームページ  >  記事  >  バックエンド開発  >  PHP は mysql サーバーに接続するために localhost を使用できません

PHP は mysql サーバーに接続するために localhost を使用できません

WBOY
WBOYオリジナル
2016-06-13 13:14:43770ブラウズ

PHP は mysql サーバーに接続するために localhost を使用できません
mysql コンソールで mysql をインストールしましたが、localhost を使用して接続できますが、php で接続する場合は 127.0.0.1 を使用して接続できません。 host. ファイルを確認すると、127.0.0.1 と localhost の間に対応関係があることがわかりました

何が起こっているのか知っている人はいますか

------解決策- ------ -------------
サイトを構築するときに、サイトを http://127.0.0.1 に設定しましたか?
------解決策---------
mysql がどのように構成されているかを確認してください。
mysql の起動後に /usr/local/mysql/var/mysql.sock が存在するかどうかを確認します。
------解決策----------------------
説明
を使用すると頻繁にエラー メッセージが表示されるmysql コマンド ライン ユーティリティは次のとおりです。 ソケット '/tmp/mysql.sock ' を介してローカル MySQL サーバーに接続できません このエラー メッセージはイライラするかもしれませんが、解決策は簡単です

接続時の指示
ローカル システム上にある MySQL サーバーに接続する場合、mysql クライアントはローカルホスト ループバック アドレス 127.0.0.1 に接続するのではなく、ソケットと呼ばれるローカル ファイル経由で接続します。mysql クライアントの場合、このソケット ファイルのデフォルトの場所は /tmp/mysql です。ただし、さまざまな理由から、多くの MySQL インストールでは、このソケット ファイルは /var/lib/mysql/mysql.sock などの別の場所に配置されますが、ソケットを指定することでこれを機能させることもできます。 mysql クライアント コマンド

mysql --socket=/var/lib/mysql/mysql.sock ...


でこれを毎回入力するのは面倒です。このようにする必要がある場合 (以下のソリューションではファイルに対するアクセス許可がないため)、これを機能させるためにシェルでエイリアスを作成できます

(alias mysql= "mysql - -socket=/var/lib/mysql/mysql.sock " シェルに応じて異なります)。

作業を容易にするために、MySQL 構成ファイル /etc/my.cnf に簡単な変更を加えることができます。 /etc/my.cnf のバックアップ コピーを作成した後、ファイルは

[mysqld] datadir=/usr/local/mysql/data
ソケット=/var/lib/mysql/mysql.sock

[mysql.server]
user=mysql
basedir= / usr/local/mysql

現在 [client] というセクションが存在しない場合は、ファイルの最後にセクションを追加し、次のように [mysqld] セクションの下にあるソケット= 行をコピーします。 🎜> [client]
ソケット=/var/lib/mysql/mysql.sock

my.cnf ファイルに既に [client] セクションがある場合は、必要に応じてソケット行を追加または編集します。サーバーや他のプロセスを再起動する必要はありません。その後の mysql クライアントの使用では、



が使用されます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。