web-dev-qa-db-ja.com

データベースユーザーは存在しますが、まだ(HY000 / 2002)が表示されます:そのようなファイルまたはディレクトリはありません

MacにVanillaフォーラムをインストールしようとしています。このために、mysqlコマンドラインからデータベースとユーザーを作成しました。

_mysql> CREATE DATABASE Vanilla;
Query OK, 1 row affected (0.00 sec)

mysql> create user 'Vanilla_user3'@'localhost' IDENTIFIED BY 'Vanilla_password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON * . * TO 'Vanilla_user3'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
_

だから私は次のコードを使用して接続しようとします:

_$con=mysqli_connect("localhost","Vanilla_user3","Vanilla_password","Vanilla");
if (mysqli_connect_errno($con)) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
_

しかし、残念ながらWarning: mysqli_connect(): (HY000/2002): No such file or directory in /Users/kramer65/Sites/Vanilla/info.php on line 3 Failed to connect to MySQL: No such file or directoryというエラーが表示されます

私が間違っている場所は何ですか?

28
kramer65

さて、解決策を見つけました。問題は、ホストがlocalhostではなく、127.0.0.1。私はいつもlocalhost127.0.0.1は同じでしたが、異なることが判明しました。

したがって、将来のユーザーへのヒントとして、疑わしい場合は常にIPを使用してください。

みなさん、素敵な一日を!

101
kramer65

私は同じ問題を抱えていましたが、問題はphp.iniファイルに関連するものでした。

/etc/php.ini(またはphp.iniが配置されている場所)で次の2行を編集する必要がありました。

mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

Apacheサーバーを再起動して、変更が反映されていることを確認します。

Sudo apachectl restart
12
mohitmayank

MAMP MySQLポートがデフォルトの8889に設定されているとしましょう。場合によってはlocalhostだけでは不十分で、その場合はMySQLポートもそこに配置する必要があるため、_localhost:8889_または_localhost:{whatever your MySQL port number is}_を実行します。私はまだMySQLが初めてなので、その理由はわかりませんが、最近メッセージを受け取った誰でも:Warning: mysqli::mysqli(): (HY000/2002): No such file or directory in ... localhostにMySQLポート番号を追加することは私にとっての修正でした。

5
Adam