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 クライアントの使用では、
が使用されます。