web-dev-qa-db-ja.com

mysqli_real_connect():(HY000 / 2002):そのようなファイルまたはディレクトリはありません

mysqli_real_connect(): (HY000/2002): No such file or directory

MacOSでのPhpMyAdminエラー。私はこれを解決するために何をする必要があるのか​​本当にわからない答えが欲しいです。

55
luigi

config.inc.phpでlocalhostを127.0.0.1に変更します

$cfg['Servers'][$i]['Host'] = '127.0.0.1';

これは、localhostを使用すると、pmaがmysql.socketに接続しようとするためです。 127.0.0.1を使用する場合、PMAはTCP接続を作成しますが、これは機能するはずです。

82
naiz0

私は前にこれを試しています

cd/opt/lampp/phpmyadmin

それから

gedit config.inc.php

これを見つけて、

$cfg['Servers'][$i]['Host'] = 

localhostがある場合は、127.0.0.1に変更します

注:「//」がある場合は、$cfg['Servers'][$i]['Host']の前に//を削除します

もう一度確認しましたhttp://localhost/phpmyadmin/

mysqliは言った:

「phpMyAdminがMySQLサーバーに接続しようとしましたが、サーバーは接続を拒否しました。設定のホスト、ユーザー名、パスワードを確認し、MySQLサーバーの管理者から提供された情報に対応することを確認する必要があります。」

私は再びconfig.inc.phpを開いていますが、見つけました

$cfg['Servers'][$i]['password'] =

パスワードにパスワードを入力してください

それは私のために働いた。それもあなたのために働くかもしれません。

17
faruq ah

phpmyadmin 2018年10月

config.sample.inc.phpを見つけます

変化する

$cfg['Servers'][$i]['Host'] = 'localhost';

$cfg['Servers'][$i]['Host'] = '127.0.0.1';

セーブ。

次に、ファイル名を変更し、名前からsampleを削除します。

11
Siraj Alam

mysqli_connect():(HY000/2002):そのようなファイルまたはディレクトリはありません

バックグラウンド:

ターミナルを使用して、MacでPHPUnitテストを実行したかっただけです。テストしたいクラスのいくつかは、PHPMyAdminによって作成および管理されたMySQL DBに接続する必要があり、作業していたWebアプリはローカルホストで正常に機能していました。そのため、そのテストケースを実行すると、端末で次のエラーが発生しました。

mysqli_connect(): (HY000/2002): No such file or directory

解決:

そのため、かゆみを解消し、テストを実行する必要がありました。いくつかのSO Q&Aスレッドで検索し、試してみました。そして、変更の組み合わせがうまくいきました。

  1. PHPMyAdminに関連するconfig.inc.phpファイルを見つけます。
  2. $cfg['Servers'][$i]['Host']を探します。ほとんどの場合、この行はデフォルトでコメント化されている可能性があります。その場合はコメントを外してください。
  3. そして、その行を次のように置き換えます。

$cfg['Servers'][$i]['Host'] = '127.0.0.1';

  1. それを保存し、XAMPPコントロールパネル(manager-osx)からMySQLデータベースを再起動します。
  2. mysqli_connect()メソッドの$Hostパラメーター値を次のように変更します。

$_connection = mysqli_connect(**"localhost: 3306"**, $_mysql_username, $_mysql_password, $_database);

注:この3306は、デフォルトのMySQLポート番号です。これらの手順に従う前に、実際のMySQLポート番号を確認する必要があります。

そして、それだけです。私にとっては、これらの一連のステップのみが機能し、他には何もありませんでした。ユニットテストを実行したところ、正常に機能し、テストに従ってDBデータも適切に更新されました。

これが機能する理由:

私が見つけた最も近い理由は、mysqli_connectメソッドがデータベースの作業ソケット(DBホストのIPアドレスとポート番号)を必要とすることがあるため、機能することです。したがって、$cfg['Servers'][$i]['Host'] = '127.0.0.1';行をコメント化した場合、またはその値として「localhost」を設定した場合、ポート番号は無視されます。ただし、ソケットを使用する場合は、「127.0.0.1」または実際のホスト名を使用する必要があります。 (私にとっては、デフォルトのポート番号に関係なく、上記の手順を実行する必要があります。)詳細については、以下をお読みください link of PHPMyAdmin

これが他の誰かに役立つことを願っています。

乾杯!

8
Randika Vishman

SQLサーバーが停止している可能性があります

Sudo /etc/init.d/mysql start
7
Abdulla Nilam

まず、mysqlサービスが実行されていることを確認します。

ps elf|grep mysql

実行中の場合、次のような出力が表示されます。

4 S root      9642     1  0  80   0 -  2859 do_wai 23:08 pts/0    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/Tomcat-machine.local.pid
4 S mysql     9716  9642  0  80   0 - 200986 poll_s 23:08 pts/0   00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/Tomcat-machine.local.err --pid-file=/var/lib/mysql/Tomcat-machine.local.pid

config.inc.phpでlocalhostを127.0.0.1に変更します

$cfg['Servers'][$i]['Host'] = '127.0.0.1';

「root」ユーザーのデフォルトのパスワードは空です「」パスワードには何も入力しないでください

空のパスワードが許可されない場合は、config.inc.phpを再度編集して変更する必要があります。

$cfg['Servers'][$i]['AllowNoPassword'] = true;

問題は、構成設定とMySQLが実行されていないことの組み合わせです。これが、このエラーを修正するのに役立ちました。

3
AbelSurace

本日、以下の手順で問題を修正しました。

  1. Config.inc.phpがphpMyadminディレクトリに存在しない場合、config.sample.inc.phpをconfig.inc.phpにコピーします。

  2. /* Server parameters */にソケットを追加します

    $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
    
  3. ファイルを保存し、URLからphpmyadminにアクセスします。

Mysql 8.0.12を使用している場合、PHPクライアントでは強力な暗号化がサポートされていないため、レガシーパスワード暗号化を使用する必要があります。 enter image description here

2
Ketan Yekale

Webサイトが正常に実行されていて、予期しない場合ERROR(HY000/2002): No such file or directory

次に、NOT CHANGE任意の設定ファイルを使用する必要があります!

最初にサーバーを確認してくださいerror.logファイル、Nginxの場合:

/var/log/nginx/error.log

または、Apacheの場合:

/var/log/Apache2/error_log

私の場合、nginxのerror.logでPHPの致命的なエラー:メモリー不足を確認できました。

解決策:サーバーにRAMを追加します。


RAMをアップグレード/追加する前に、最初にWebサーバーを再起動しようとしました。それからERROR (HY000/2002) but got some ERROR 50X: Connection Error...を取り除きました

この時点で2GBのRAMを追加し、Webサーバーを再起動すると、すべて正常に動作しました!

Webサーバーが起動したとき、1 PHPスクリプトのループバグが原因で200を超えるcronジョブがスタックしていることに気付きました。

したがって、どのスクリプトがメモリを消費しているかを確認してください。

0
Cyborg

ArchlinuxまたはUbuntuを使用している場合は、次のコマンドを入力するだけです。

$cd/opt/lampp/phpmyadmin

それから

$sudo gedit config.inc.php

次に、ファイルにアクセスすると、以下のスクリプトを探します。

// $ cfg ['Servers'] [$ i] ['Host'] = 'localhost'

//」を削除して、以下に示すようにします。

$ cfg ['Servers'] [$ i] ['Host'] = 'localhost'

次に、「localhost」を「127.0.0.1」に変更し、スクリプトは次のように変わります。

$ cfg ['Servers'] [$ i] ['Host'] = '127.0.0.1'

ブラウザに戻って http://127.0.0.1/phpmyadmin/ と入力します

それでも拒否する場合

設定内のホスト、ユーザー名、パスワードを確認し、MySQLサーバーの管理者から提供された情報に対応していることを確認する必要があります。

そのため、編集していた同じファイルconfig.inc.phpに戻り、次のようにします。

$cd/opt/lampp/phpmyadmin

それから

$sudo gedit config.inc.php

以下のスクリプトを検索

$ cfg ['Servers'] [$ i] ['password'] = ''

パスワードにルートパスワードを入力します

$ cfg ['Servers'] [$ i] ['password'] = 'your_password'

そして、それは動作するはずです。幸せなハッキング友達。

0
Lamech Desai