

PHP の `mysql_connect` を使って MySQL への接続を試みているのですがうまくいきません。

以下コードです。

[code]

    <?php
    
      $connect = mysql_connect("hiroki_%","hiroki","");
      echo mysql_errno().": ".mysql_error()."<BR>";
    
      if ($connect) {
        echo 1;
      } else {
        echo 2;
      }
    
    ?>
    
[/code]

これの実行結果はこちらです。

[code]

    > 2005: Unknown MySQL server host 'hiroki_%' (20)
    2
    
[/code]

※ ご存知かと思いますが

[code]

    echo mysql_errno().": ".mysql_error()."<BR>";
    
[/code]

は直近のエラーを表示するコードです。

phptest というデータベースを作成しています。

確かにユーザー作成はできているはずだと思います。

![確かにユーザー作成はできているはずだと思います](https://i.stack.imgur.com/RwIAN.png)

一般的には

[code]

    $connect = mysql_connect("localhost","root","");
    
[/code]

で接続するのが普通だと思いますがこうした場合の実行結果は

[code]

    > 1045: Access denied for user 'root'@'localhost' (using password: NO)
    2
    
[/code]

となってしまいます。  
ユーザー認証とかの話になってくるので新しくhirokiというユーザーを作成して実行したのですが上記の通りです。

解決策をどうかお力添えお願いいたします。

--追記--

localhostにパスワードを設定して

[code]

    <?php
    $connect = mysql_connect("localhost","root","password");
    
    echo mysql_errno().": ".mysql_error();
    
[/code]

を実行すると実行結果は

[code]

    0: 
    
[/code]

となり、エラーなしで接続できたのですが、phpMyAdminのページを表示すると

[code]

    #1045 - Access denied for user 'root'@'localhost' (using password: YES) 
    
[/code]

とエラー文が表示されてしまい、phpMyAdminに入れなくなってしまいました。

[code]

    MySQL サーバに接続しようとしましたが拒否されました。config.inc.php のホスト、ユーザ名、パスワードが MySQL サーバの管理者から与えられた情報と一致するか確認してください。
    
[/code]

といった表示も出てきます。

config.inc.phpというファイルを編集しようと思いfinderで検索したのですが  
config.inc.phpのファイルが14個ほど出てきてどれを編集すればいいのかわかりません。


CC BY-SA 4.0
2015-03-02T18:15:05.713
7335
2020-10-14T01:33:46.200
2020-10-14T01:33:46.200
3060
8643
question
php mysql phpmyadmin
PHPからMySQLに接続がうまくできない


エラーメッセージの通りで、ホスト名が間違っているか名前解決ができていないかでサーバを見つけられていません。

そもそもホスト名には`%`は使えないのですが、指定されているホスト名は実在するのでしょうか

  * `mysql_connect()`の第一引数に指定するのは **接続先** のホスト名です。
  * 権限で指定するホスト名は、 **接続元** のホスト名です。

質問の内容からはこの点が区別できていないように見受けられます。

もっと手前の話として、mysql_*系の関数は非推奨になっていますので、そこから見直すことをお勧めします。


CC BY-SA 3.0
2015-03-03T00:01:39.897
7338
2015-03-03T01:06:53.210
2015-03-03T01:06:53.210
5793
5793
7335
answer


まずは切り分けとして、  
MySQLもPHPも同じサーバーの中にいるんだね？

であれば、  
hirokiのホストは **localhost** であるべきだと思うのです。

後、  
私の記憶だけで申し訳ないけど、  
昔はMySQLも root,パスなし で接続できたけど、  
最近はrootにパスワードを必ずつけないと接続できなかった気がするのです。  
それが例え **localhost** であったとしても。

**追記への返答**  
rootにパスワードを設定してしまったので、  
phpMysqlAdminに入れなくなってしまったみたいね。

下記のサイトをご参照ください。  
phpMyAdminの設定ファイル（config.inc.php）を  
rootで設定したパスワードに書き換えれば  
繋がるようになると思うよ。

<http://php1st.com/435/>

config.inc.phpの場所だけど、  
MacOSXでApacheを立ち上げてやっていると思うけど、  
Apacheで公開されているphpMyAdminフォルダーのにあると思う。


CC BY-SA 3.0
2015-03-03T00:31:33.293
7339
2015-03-03T04:48:15.197
2015-03-03T04:48:15.197
127
127
7335
answer