この回答は、OPから提供された新しい情報に基づいて何度か編集されています
ルートは実際に許可されています 接続元のホストからサーバーに接続するには?エラー文字列がサーバーの正規名を返している場合、「localhost」が127.0.0.1を指していない可能性が非常に高いです:
これは、サーバーの名前ではなく、「ユーザー'root'@localhost'のアクセスが拒否されました」のようなものをエコーするはずです。
試してみてください:
$con = mysql_connect("127.0.0.1","root","pass");
編集 (コメントで提供された詳細情報の後)
まったく異なるホストから接続している場合は、MySQL [email protected]_hostname_or_ip
接続が許可されており、データベースとユーザーを作成するための適切な権限があります。
これは、phpmyadmin(MySQLサーバー上)または次のようなクエリを使用してかなり簡単に行うことができます:
CREATE USER 'root'@'192.168.1.1' IDENTIFIED BY PASSWORD 'secret';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.1.1' IDENTIFIED BY PASSWORD 'secret' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
このユーザーに「root」という名前を付けるのではなく、必要なすべてのグローバル権限を持つユーザーを作成することをお勧めします。この例では、簡単にホスト名になる可能性のある192.168.1.1を使用しましたが、DNSが適切に設定されていることを確認してください。 正確に一致するホストを指定します リモートサーバーに接続するとログに表示されます。
好みに合わせて制限を調整することもできます。 CREATE USER
の詳細 構文は、ここにあります
、GRANT
こちら
。
編集
MySQL4を使用している場合-CREATEはオプションではありません。 GRANT(4.1ユーザー管理に関するドキュメント )
編集
C-Panelを使用している場合は、APIを使用する 。はい、それは癖がありますが、アドホックな回避策よりも、それを使用するものを維持する方が簡単です。多くの成功したアプリケーションは問題なくそれを使用します。他のAPIと同様に、使用するときは変更を常に把握しておく必要があります。