別ドメインから接続するために、
下記の通り書きましたがうまく機能しません。
<?php
$link = mysql_connect('localhost:ポート番号','ユーザー名','パスワード');
if (!$link) {
die('接続できませんでした: ' . mysql_error());
}
echo '接続に成功しました';
mysql_close($link);
?>
エラーメッセージは下記の通りです。
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ユーザー名'@'localhost' (using password: YES) in C:\xampp\(中略).php on line 2
接続できませんでした: Access denied for user 'ユーザー名'@'localhost' (using password: YES)
環境はPHP5、XP、最新のXAMPPを使用しています。
サーバーは80code.comです。
いろいろ試してみましたがどうしてもうまくいきません。
どうしたらよいか教えてください。
なお、質問者は初心者ですので解答は具体的な
スクリプトを教えてもらえると嬉しいです。
以上、よろしくお願いします。
XAMPPを入れたPCの話ですよね?80codeは関係ないですよね?
80codeから提供されたDB接続ユーザー・パスワードはローカルのXAMPPとは関係ありませんよ。
ローカルのMySQLに接続したければ、MySQLにDBとユーザーを作成しなければいけません。
CREATE DATABASE test_db;
GRANT ALL PRIVILEGES ON test_db.* TO test_user@localhost IDENTIFIED BY 'test_pw';
この状態で
$link = mysql_connect('localhost:3306','test_user','test_pw');
です。
「$link = mysql_connect('localhost:ポート番号','ユーザー名','パスワード');」
でlocalhostにポート番号を設定していれば80code側に
アクセスできると思ったのですが違いますか?
違います。
コメントした通り、その例では、localhost にアクセスします。
(だから、最初の回答者さんが「80codeは関係ないですよね?」となったのだと思います)
80code にアクセスしたいのなら、
$link = mysql_connect('hoge.80code.com:ポート番号','ユーザー名','パスワード');
の様になるでしょう。
第1引数は接続先サーバですし、localhost は自分自身を指す言葉ですから。
http://jp.php.net/manual/ja/function.mysql-connect.php
質問に書いてあります通り、「(using password: YES)」というメッセージは
パスワードは合ってるんだけどね。ということだと思ったのですが違いますでしょうか?
よくは理解していませんが、「パスワードが合っている」なんて事をサーバが答えるのはセキュリティ的に拙くないですか?
パスワードを使っている(使おうとしている)と言っているだけの様に思えます。
tezcelloさん
いつも丁寧な回答ありがとうございます。
第一回答者の方が誤解されたのも私の質問の書き方が悪かったからです。
ちょっと違うエラーが出てきました。
なんか一歩前進したような気がするのですが、
いただいた回答を元にいろいろ入力値を変更して試してみます。
>「パスワードが合っている」なんて事をサーバが答えるのは
>セキュリティ的に拙くないですか?
本当にその通りですね。
自分の想像力のなさに愕然としてしまいました。
ご回答ありがとうございます。
>XAMPPを入れたPCの話ですよね?80codeは関係ないですよね?
80codeで設定済みのデータベースにアクセスする方法が知りたいということです。
現在はテスト段階なので、ローカルパソコンからのアクセスですが、
将来的には別のアカウント、ドメインを取り直して、
そこからそのデータベースにアクセスするということを視野に入れて質問しました。
私の質問の仕方が悪くてすみません。
またお時間があったらぜひ教えてください。