「うちの夫婦・家族っていいな」と思った瞬間大賞 キャンペーン

QbickUと申します。よろしくお願いします。

環境は、
WinNT / Apache1.3.29 / PHP4.3.6 / MySQL 3.23.49 です。

症状としては、phpで次のように記述し実行すると

//サーバー名--localhost ユーザー名--root パスワード--123456
$dbHandle = mysql_connect("localhost","root","123456");

if ($dbHandle == False) {
print ("can not connect db\n");
exit;
} else {
print ("OK\n");
exit;
}
--
次のようなエラーが返ります。

Warning: mysql_connect(): Access denied for user: 'SYSTEM@localhost' (Using password: NO) in c:\html\mytest1.php on line 4
can not connect db
--
補足事項なのですが
・MySQL権限の初期設定済みです。
・コマンドプロンプトからは接続、テーブル操作ができます。(ルート権限 user:root pw:123456、また他の一般権限ユーザーにおいても)
・phpinfo();の結果において、MySQLの表示が確認できます。
・mysqld-nt.exeはひとつしか起動していません。

'SYSTEM@localhost',password: NOとなっているため、ユーザーID、パスワードとも渡っていないような気がします。
同じようなスレッドを見つけたのですが、いずれもそこで解決に至っておらず、往生しています。
アドバイスをいただけたらうれしいです。よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

SYSTEMはWindowsのユーザー名です。



このエラーは文字通りlocalhostへのアクセス(user=SYSTEM,
パスワードなし)が許されていないというものです。

かなり不思議なんですが、本当にmytest1.phpの4行目は
$dbHandle = mysql_connect("localhost","root","123456");
なんですか?それだとユーザーに「root」を指定しているのに
なぜかユーザーがSYSTEMに変わってしまっていることになります。
それはありえないことと僕には思えます。

この回答への補足

はい。本当に
$dbHandle = mysql_connect("localhost","root","123456");
です。
私もありえないことだと思うのですが、一件だけ同様の事例を見つけました。
--
http://www.sound-uz.jp/php/bbs/index.php?mode=kl …
記事番号 1618
--
こちらのスレッドでも解決には至っていないようです。

補足日時:2006/07/06 00:59
    • good
    • 0

適当な発言した#1です、すみません。


と謝っても全然詳しくないので回答できませんが。。

$dbHandle = mysql_connect("localhost", "system", "");
でも警告が出ますか?通常は出ないと思うのですが。

MySQLに比べてPHPのバージョンが新しいですが、
PHPはアップデートされたのでしょうか。
(msiでインストールしたなら問題なさそうですが)

XP、Linuxに何パターンか入れてますが、このエラーは出たことがないです。
NTだからでしょうか?

この回答への補足

tany180sxさん、ご回答ありがとうございます。

$dbHandle = mysql_connect("localhost", "system", "");
でも同様のエラーがでます。たとえば極端なところ、

$dbHandle = mysql_connect("", "", "");
でも同様の結果になります。

PHPはmsiでアップデートしました。
「SYSYTEM@localhost」などで調べても、あまり前例がないようで、どうしたものかと。。
やはり、バージョンが古いせいもあるのかと思っています。

補足日時:2006/07/03 23:22
    • good
    • 0

Warning: mysql_connect(): Access denied for user: 'SYSTEM@localhost' (Using password: NO) in c:\html\mytest1.php on line 4



SYSTEMってなんですか?
定数ですか?

この回答への補足

tany180sxさん、ご回答ありがとうございます。
SYSTEMは定数ではありません。
こちらでは、何も設定していない状態なので、私も「SYSTEM」って何だ?といった具合です。

補足日時:2006/07/02 10:21
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QボタンをクリックでPHP文を実行

ボタンをクリックしたときのみPHP文を実行したいのですが・・・

<input type="button" onClink="<?php~?>">
でいけるかと思ったのですが、
ページ表示時に<?php~?>が実行されてしまい、うまくいきませんでした。

onClink="window.open(test.php)"
という方法以外でお願いします。

Aベストアンサー

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、遷移させることが大前提で動作します

ですから、ボタンを押してその場でJavaScriptと同じようにPHPが動くなんてことはありえません。
ボタンを押したらサーバーにリクエストする という動作ならば可能です。

つまり
質問で言われているような
onClink="window.open(test.php)"

<form name="f1" action="test.php" method="post">
<input type="submit" name="submit" value="submit" />
</form>
等のような形になります

こういった一般的な方法だと いちいち画面が切り替わったようになってしまうのを嫌って Ajaxでコレと同じことを、画面を切り替えずに行っているだけに過ぎません

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、...続きを読む


人気Q&Aランキング

おすすめ情報