mysqli_real_connect(): (HY000/2002): No such file or directory
MacOSでのPhpMyAdminエラー。私はこれを解決するために何をする必要があるのか本当にわからない答えが欲しいです。
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接続を作成しますが、これは機能するはずです。
私は前にこれを試しています
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'] =
パスワードにパスワードを入力してください
それは私のために働いた。それもあなたのために働くかもしれません。
phpmyadmin 2018年10月
config.sample.inc.php
を見つけます
変化する
$cfg['Servers'][$i]['Host'] = 'localhost';
に
$cfg['Servers'][$i]['Host'] = '127.0.0.1';
セーブ。
次に、ファイル名を変更し、名前からsampleを削除します。
ターミナルを使用して、MacでPHPUnitテストを実行したかっただけです。テストしたいクラスのいくつかは、PHPMyAdminによって作成および管理されたMySQL DBに接続する必要があり、作業していたWebアプリはローカルホストで正常に機能していました。そのため、そのテストケースを実行すると、端末で次のエラーが発生しました。
mysqli_connect(): (HY000/2002): No such file or directory
そのため、かゆみを解消し、テストを実行する必要がありました。いくつかのSO Q&Aスレッドで検索し、試してみました。そして、変更の組み合わせがうまくいきました。
config.inc.php
ファイルを見つけます。$cfg['Servers'][$i]['Host']
を探します。ほとんどの場合、この行はデフォルトでコメント化されている可能性があります。その場合はコメントを外してください。$cfg['Servers'][$i]['Host'] = '127.0.0.1';
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 。
これが他の誰かに役立つことを願っています。
乾杯!
SQLサーバーが停止している可能性があります
Sudo /etc/init.d/mysql start
まず、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が実行されていないことの組み合わせです。これが、このエラーを修正するのに役立ちました。
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ジョブがスタックしていることに気付きました。
したがって、どのスクリプトがメモリを消費しているかを確認してください。
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'
そして、それは動作するはずです。幸せなハッキング友達。