ホームページ >バックエンド開発 >PHPチュートリアル >崩壊寸前ですが、mamp 環境でのデータベースへの接続とシステム設定についていくつか質問にお答えいただきたいと思います。

崩壊寸前ですが、mamp 環境でのデータベースへの接続とシステム設定についていくつか質問にお答えいただきたいと思います。

WBOY
WBOYオリジナル
2016-06-20 12:46:121110ブラウズ

概要: 最近 PHP プログラミングを学習しました。システムは MAC OS ですが、次のようにデータベースに接続できません。
たとえば、mamp ホームページのプロンプトに従って、データベース接続のテスト コードを入力します。



http://localhost:8888/ Web ページには空白のプロンプトが表示されません。

$user = 'root';$password = 'root';$db = 'inventory';$host = 'localhost';$port = 8889;$link = mysqli_init();$success = mysqli_real_connect(   $link,    $host,    $user,    $password,    $db,   $port);

次のコードを再度テストします


Web ページが表示されます: そのようなファイルまたはディレクトリはありません
    $host='localhost';    $user='root';    $password=‘root’;     $database=‘mysql’;    $port=8889;    $socket=':/Applications/MAMP/tmp/mysql/mysql.sock';    $dbc = mysqli_connect($host, $user, $password, $database,$port,$socket) or die(mysqli_connect_error());


次のコードを再度テストします:


zend: mysql_connect(): No such file or directory in /Applications/MAMP/htdocs/tags.php の 2 行目に警告が表示されます
<?php $link=mysql_connect("localhost","root", "root"); if(!$link) {echo "ok";}else {echo "false"; }?>
ok
しかし、localhost には false が表示されます。平均?

私も 2 日間この問題に悩まされ、システムの root ユーザーに切り替えてみましたが、応答がありませんでした。

初めてターミナルで mysql -uroot -p を実行しようとしました。
mamp をオフにして起動しようとすると、-bash: mysql: command not found と表示されました。システムに付属の mysql も同じ -bash を示しました
オンライン クエリに従ってください http://zhidao.baidu.com/link?url=0FkWDsFNtdWu3Ww​​ZVjpgY0l-DfpWZKADiEg7gwIA9oJwYoR5EYbvBWfnAPdKpBASgsgxRFYTsTmJgUCyMj0Ipk-I5 SQkmg66ugqSHrl2c43 で試してみましたが、パスワードの変更は成功しましたが、何度変更してもパスワードが間違っていると表示されます。

MAC に付属の mysql は、mamp の mysql と競合しますか?

私はそれを解決するために最善を尽くしましたが、私の能力には限界があり、私は本当にPHPで何かを作りたいのですが、私を助けてください。 100%、ありがとうございます!


ディスカッションへの返信 (解決策)
オープンエラーログに記録し、エラーを確認します

PHP に mysql 拡張機能がインストールされているかどうかを確認します

mysql が開始されているかどうか、およびリッスン ポート番号を確認します。


MAC を使用したことがありません。仮想マシンをインストールし、Windows システムをインストールし、wamp 環境をダウンロードして使用することをお勧めします。

2 つのコード、1 つは mysqli_connect で、もう 1 つは mysql_connect

どちらを使用していますか?これら 2 つを使用するには、php-mysql 拡張機能と php-mysqli 拡張機能をインストールする必要があります。




出力に mysql および mysqli 拡張機能があるかどうかを確認します。存在しない場合は、インストールが失敗したことを意味します。両方の拡張機能を再インストールする必要があります。

<?phpphpinfo();?>

多くの方法を試した結果、MySQL への接続時に PHP が「そのようなファイルまたはディレクトリはありません」というエラーを報告することが要約されます。
Baidu: http://www.linuxidc.com/Linux/2012- 12/76150 .htm これが最も可能性の高い解決策です

ただし、mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket は、mamp に付属の phpinfo ページを使用して見つけることができます

ただし、ファイルはファインダーなので無視しましょう。 。 。
第 3 条 3. mysql を起動し (注 2 を参照)、コマンド STATUS を実行します。UNIX ソケットの値に注意してください。
この STATUS コマンドの入力方法は?分かりません、説明してください!

http://ju.outofmemory.cn/entry/144933
と書かれています。 「解決策も信じられないほど簡単です。サンドボックスに PHP バイナリのソフト リンクを作成し、それを置くだけです。」 / たとえば、usr/local/bin に php55 という名前を付けます。今後データベースに接続する必要があるスクリプトを実行するときは、必ず php55 をインタープリタとして使用すると、スムーズに実行されます。 🎜>

これを行うには、同じ問題を解いてください。


ソフトリンク方法を試しましたが、役に立たないようで、またクラッシュします
ターミナル入力 In -s /Applications/MAMP/tmp/mysql /usr/local/bin
表示: -bash : In: コマンドが見つかりません

行きます。 。 。 。


Mac は知りませんが、コマンドが見つからないということは見覚えがあります。システム環境変数に問題があるようです。

元の投稿者の Mac には PHP が 2 つあると推測されます。拡張機能がインストールされているものは PHP56、もう 1 つは php55 です。

php -v

/usr/local/bin/php -v

を参照してください。同じであれば、それが問題です。

インストールされている php パスに /usr/local/bin/php をソフトリンクするだけです。

まず、エラー メッセージを有効にします。


どのようなエラー メッセージがあるかを確認してください

最後に、PHP のデータベースのポート番号が間違っていることがわかりました。修正したら大丈夫でした、皆さんありがとうございました!

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