• 締切済み
  • 困ってます

お世話になります。

お世話になります。 ○PHPでMySQL 接続テスト ○環境 ・サーバー ホスト名:linux.nikoniko.com(仮名) OS:Centos 5.5 PHP: 5.3.3 MySQL: 5.1.49 ・クライアント OS:Windows7(pro) 各ツール:XAMPP 1.7.3 Eclipse IDE for PHP Developers:1.2.2.20100216-1730 ○行いたいこと phpでDB接続のテストを行っています。 php用にMySQLのユーザーを作成し、クライアントからphpでDB接続できるか確認のテストです。 ○行ったこと 以下SQL文で GRANT ALL PRIVILEGES ON *.* TO centos@linux.nikoniko.com IDENTIFIED BY 'centos' WITH GRANT OPTION MySQLのユーザーcentosを作成しました。 作成した「centos」のユーザーでphpMyAdmin とサーバー上のコマンドで「centos」でログインは出来たのですが 以下のphpコードでホスト名とユーザーを指定し接続を試みると以下のエラーで接続できません。 ・phpコード <?php $mysql_con = mysql_connect("linux.nikoniko.com:3306","centos","centos"); if ($mysql_con == false){ print "DB接続エラー!"; } else { print "DB接続OK!"; } ?> ・実行エラー Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'centos'@'192.168.1.10' (using password: YES) in C:\xampp\htdocs\PHP_Lesson\mysql_connect\dbconnect.php on line 3 上記phpコードでユーザー名を「root」にすると接続はできます。 新たにMySQLのユーザーを作成(ここではcentos)して上記phpコードで接続できるようにするにはどうすればいいのでしょうか。 宜しくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数242
  • ありがとう数4

みんなの回答

  • 回答No.2

こんにちは。 >PHPはクライアント(WIndows)、MySQLは(Centos)で動かしていますので >別PCです・・・ あらそ・・・、とんだ早とちりで失礼しました・・・。 サーバーのIPアドレスは、192.168.1.10でいいんですか? エラーメッセージから判断するに、ホストの名前解決ができてないように見えます。 mysqladmin flush-hostsを実行して内部DNSキャッシュをリセットしても駄目な場合、 1. DNSサーバーの問題を修正。 2. GRANT ALL PRIVILEGES ON *.* TO centos@linux.nikoniko.com IDENTIFIED BY 'centos' WITH GRANT OPTION の代わりに GRANT ALL PRIVILEGES ON *.* TO centos@192.168.1.10 IDENTIFIED BY 'centos' WITH GRANT OPTION にする。 3. --skip-name-resolveオプションでmysqldを開始する。 4. --skip-host-cacheオプションでmysqldを開始する。 などなどありますが・・・。 個人的にはIP指定にするか「%」でやっちゃうか、がいいかと思います。 セキュリティを考慮するなら「%」はお勧めしませんが・・・。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • eclipseで実行したときだけエラーが発生する

    xampp1.6.6a + eclipse(zendPDT) で、PHP + mysql のコーディングをしたいと思っています。 一通りのセットアップをした後、下記のようなコードを組んで実行したところ、 ブラウザから直接アクセス(http://localhost/~ のURL)すると「接続成功!」と出るのですが、 eclipseから実行するとエラーが出てしまいます。 <?php include_once ("teisuu.php"); $my_Con = mysql_connect($db_host,$db_user,$db_pass); if ($my_Con == false){ die("MYSQLの接続に失敗しました。"); }else{ echo "接続成功!"; } ?> エラー: Fatal error: Call to undefined function mysql_connect() eclipse側で設定が何か足らないのだろうと思いますが、 どのようなことが考えられるでしょうか。

    • ベストアンサー
    • PHP
  • PHPでMySQLのDBに接続

    PHP,MySQLが使えるレンタルサーバーを借りているのですが, PHPでMySQLに接続し、php_dbを選択をするようにしたいのですが、 この時DBファイルはどこに置けばいいのでしょうか? 現在はMySQLの管理コマンド(?)とは別にpublic_htmlの中に PHPフォルダを作り、そこにDBファイルを入れています。 PHPのスクリプトは <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>練習</title> <meta http-equiv="content-language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> </head><body> <?php $con = mysql_connect(); if (!$con) { echo ("Error:MySQLに接続できませんでした。<br />"); } else { echo ("接続ID=$con<br>\n"); } $selectdb = mysql_select_db("php_db" ,$con); if (!$selectdb) { echo ("Error:データベースを選択できませんでした"); } else { echo ("データベースphp_dbを選択しました。"); } ?> </body></html> としています。 MySQLには接続ができるのですが、php_dbには接続ができません。 php_dbのおき場所を変えるのか、ファイルの指定が間違っているのか その他、どの要に変更をしたらよいのでしょうか? お願いします。 環境はレンタルサーバーがLINUXでPHPのバージョンなどはわからないんです・・・!! 開発がOSがW2kでFTPで転送してます。

    • ベストアンサー
    • PHP
  • PEARでOracleへ接続時にエラー

    Linuxサーバ環境でpearを用いてPHPからOracleに接続したいのですがうまくいきません。 <?php require_once("DB.php"); $dsn = "oci8://SCOTT:tiger@DBサーバIP/DB名"; $db = DB::connect($dsn); if (DB::isError($db)) { echo "接続エラー"; } else { echo "接続成功"; } ?> というPHPにアクセスすると、接続エラーとしか表示されません。 接続先のDBに該当のユーザは存在しており、このWebサーバからSQLplusで sqlplus scott/tiger@//DBサーバIP:1521/DB名 で接続はできております。 OS:CentOS 5.2 (VMWare上で稼働) カーネル:2.6.18-92.el5 Apache:2.2.9 PHP:5.2.6 PHP-PEAR:1.4.9 接続先Oracle:9.2.0.1.0 (イントラ同セグメント内で稼働) 尚、同様の方法でWebサーバ内で稼働しているMysqlへは問題なく接続できております。 以上、心当たりのある方がいらっしゃいましたらお願い致します。

    • 締切済み
    • PHP
  • 回答No.1

こんにちは。 PHPからMySQLに接続するときに、同じマシンで動いているので、 $mysql_con = mysql_connect("linux.nikoniko.com:3306","centos","centos"); ではなく、 $mysql_con = mysql_connect("localhost:3306","centos","centos"); となりますね。 という事は、 GRANT ALL PRIVILEGES ON *.* TO centos@linux.nikoniko.com IDENTIFIED BY 'centos' WITH GRANT OPTION だけでは不十分だという事がわかると思います・・・。 centos@localhost を作るか、面倒臭かったら、 centos@% にしないと駄目でしょう・・・。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

taka451213 さん。こんばんは。 アドバイスありがとうございます。 >PHPからMySQLに接続するときに、同じマシンで動いているので、 ごめんなさい。PHPはクライアント(WIndows)、MySQLは(Centos)で動かしていますので 別PCです・・・

関連するQ&A

  • インクルードによる不具合

    PHP初心者です。 以下2つのファイルを使って簡単な接続テストを行ってから徐々に 目的のものを作り上げていこうとしたのですが、どうにもうまく動作しません。(2つは同一ディレクトリにある) ・「mysql.php」:DB接続とSQLの発行 ・「test.php」:ブラウザ出力(本体:mysql.php呼び出し元) 実行すると「*** DB/SQLテスト ***」のみブラウザに出力されるため、試しに「mysql.php」で行うDB接続とSQL発行をすべてtest.phpに直接書いてインクルードせず単体で実行したところ、目的の結果が表示されました。 なので問題はインクルード文にあるのだと思うのですが検討がつきません。 どなたかお力をお貸し下さい。 ちなみに以下のコードは参考にしたテキストの例題をもとに見やすくするため余分な処理やエラー処理などを省いたものです。 ■mysql.php <?php class MySQL{ var $m_con; var $m_rows = 0; function MySQL(){ $this->m_con = mysql_connect("ホスト名", "ユーザ名", "パスワード"); mysql_select_db("データベース名", $this->m_con); } function query($sql){ $this->m_rows = mysql_query($sql, $this->m_con); return $this->m_rows; } } ?> ■test.php <html> <head> <meta http-equive="Content-type" content="text/html; charset=utf-8"> <title>SQLtest</title> </head> <body> *** DB/SQLテスト ***<br> <?php include("mysql.php"); $mysql = new MySQL; $sql = "SELECT * FROM staff"; $mysql->query($sql); while($row = mysql_fetch_array($this->m_rows)){ echo $row["id"]; echo $row["name"]; echo "<br>"; } ?> </body> </html>

    • ベストアンサー
    • PHP
  • xampp(php,apache,mysql)で勉強しています。

    xampp(php,apache,mysql)で勉強しています。 データーベースにつなぐときに、コマンドプロンプトやphpmyadminから接続すると つなぐことができるのですが、phpのソースからmysqlに接続しようとすると、 Access denied for user 'ODBC'@'localhost' とのエラーがでます。 grantコマンドを使って権限の設定はしています。どうすればエラーが出なくなる でしょうか?

  • sql.phpの作成

    vi sql.phpで <? $con = pg_connect("dbname=ishihara"); if(!$con){ print "DBへの接続に失敗しました!\n"; exit; }else{ print "DBへの接続に成功しました!\n"; } ?> というスクリプトをつくって ブラウザでテストしたところ <? $con = pg_connect("dbname=ishihara"); if(!$con){ print "DB&#65533;吾&#65533;&#65533;・膓&#65533;&#65533;&#65533;け&#65533;&#65533;&#65533;&#65533;&#65533;障&#65533;&#65533;&#65533;&#65533;!\n"; exit; }else{ print "DB&#65533;吾&#65533;&#65533;・膓&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;障&#65533;&#65533;&#65533;&#65533;!\n"; } ?> という風に出てしまいます。 これってphpがインストール不完全なのでしょうか?

  • FC4でmysqlを使用して PEAR DB への接続ができない

    FC4に、yumでPHP5.0.4、php-pear-5.0.4、php-mysql-5.0.4、(mysql-4.1.20,mysql-server-4.1.20)をインストールしました。 <?php $con = mysql_connect("localhost","taro","password") or die("接続出来ません"); print "接続しました"; mysql_close($con); ?> を実行すると、「接続しました」と出ます。ところが、 <HTML> <HEAD><TITLE>PHP test</TITLE></HEAD> <BODY> <?php require_once("DB.php"); $dbUser="taro"; $dbPass="password"; $dbHost="localhost"; $dbName="testdb"; $dbType="mysql"; $dsn="$dbType://$dbUser:$dbPass:@$dbHost/$dbName"; $conn = DB::connect($dsn); if(DB::isError($conn)){ die($conn->getMessage()); } print ('DBに接続しました'); $conn->disconnect(); ?> </BODY></HTML> を実行すると、DB Error: connect failed と出て、接続できません。 php.iniは、 include_path = ".:/usr/share/pear:/php/includes" としてあり、 [root@FC4 ~]# ls -l /usr/share/pear/ で調べても drwxr-xr-x 2 root root 4096 5月 27 18:06 DB -rw-r--r-- 1 root root 38937 11月 8 2005 DB.php となっています。 パスの切り方が間違っているでしょうか? どのようにすれば接続できるでしょうか?よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • CentOS5.3に、apache2.2.15とphp5.3.2とmy

    CentOS5.3に、apache2.2.15とphp5.3.2とmysql5.0.45をインストールして、 phpで下記のプログラムを書いて、mysqlへ接続しようとしましたが、 Call to undefined function mysql_connectというエラーが表示されて、 接続できません。 ===================================================== <?php $con = mysql_connect("localhost"); if (!$con) { echo "Error:接続できませんでした"; }else{ echo "接続ID=$con"; } ?> ============================================== phpのconfigureのときに、 --with-mysql=/usr/local/mysqlを入れてないのですが、 mysqlはCentOS5.3をインストールしたときに、 同時にインストールしたものなので、/usr/local/mysql配下なんてありません。 この場合は、一度、mysqlをアンインストールしてから、 再度、ソースからmake installしないと、ダメなのでしょうか。 アンインストールする方法もちょっと不安なのですが、 $ rpm -qa | grep mysqlのコマンドで、 でてきた↓これを、rpm -eコマンドで、アンインストールして、 mysql-5.0.45-7.el5 libdbi-dbd-mysql-0.8.1a-1.2.2 mysql-connector-odbc-3.51.12-2.2 mysql-5.0.45-7.el5 mysql-server-5.0.45-7.el5 /usr/bin配下のmysql関連のファイルもrmコマンドで消すのでしょうか? ソースからmake installしてないので、/usr/local配下には、mysqlの ファイルは無いようですが、他にも、削除すべきファイルはありますでしょか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • MySQLでの権限付与について

    MySQLでrootの使用をなるべく避けるため DB作成、ユーザ作成などは違うユーザを作って行いたいですが、 権限を与えることはrootでしかできないと聞きました。 本当にMySQL内でgrant権限を持つユーザを作成するのはできないでしょうか?

    • ベストアンサー
    • MySQL
  • PHPとMySQLを学習しているのですが・・・。

    ----------------- apache2.0.59 php5.24 MySQL5.0.45 ----------------- <?php $my_con = mysql_connect("localhost" , "hamu" , 'hamutamago'); if($my_con == false){ echo "MySQLに接続できました"; }else{ echo "MySQLに接続できました"; }; if(mysql_select_db("sample_sql")){ echo "データベース接続できました"; }else{ echo "データベース接続できませんでした"; } ?> PHPでMySQLと連動させる勉強をいましているのですが、PHPからMySQLへアクセスする事はできたのですが、自分で作成したデータベースへアクセすることができません。最初からMySQLに入っていたinformation_schemaというデータベース(?)にはアクセスできるみたいなのですが、自分で策瀬下データベースにはアクセスが出来ないようです。 なにかご存じのかたがいらっしゃいましたらよろしくお願いします。

    • ベストアンサー
    • PHP
  • お世話になっております。

    お世話になっております。 現在PowerPoint2007のVBAの勉強をしております。 DBにACCESS2007を使用しております。 Private Sub TextBox1_Change() Dim con As New ADODB.Connection Dim rs As New ADODB.Recordset Dim connectionString As String '接続文字列の設定------------------------------------------------------ connectionString = "provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\Documents and Settings\デスクトップ\table.mdb" con.connectionString = connectionString '接続 con.Open 'SQL文を実行(RecordSETで受け取ります)-------------------------------- Set rs = con.Execute("SELECT * FROM table2") TextBox1.Text = ????? '接続を閉じる---------------------------------------------------------- con.Close Exit Sub End Sub こちらがVBAのコードです。 TextBox1.Text = ????? の部分にSQLで実行した 結果を入れたいのですがどのようにすればいいのか わかりません。 解る方、参考になるHP等ありましたら教えていただければ 幸いです。 何卒よろしくお願いします。

  • レンタルサーバでPHPからMySQLに接続したい

    お世話になっています。 レンタルサーバー(ロリポップ)からPHPを使いMySQLに接続しようとしていますが、うまくいきません。 レンタルサーバー(ロリポップ)でのデータベース作成機能である、phpMyAdminを使ってデータベースを作成しました。 ホスト名:ftp260.lolipop.jp MySQLユーザ:LA12167219 パスワード:**** データベース名:LA12167219 上記の設定の場合、下記のように接続しようとしましたが、エラーメッセージがでます。 <PHPの内容> $con = mysql_connect("ftp260.lolipop.jp","LA12167219","****"); echo $con; <エラーメッセージ> Warning: mysql_connect(): Can't connect to MySQL server on 'ftp260.lolipop.jp' (111) in /pass~/sample.php on line 2 ロリポップの問題なのか、プログラムの問題なのか、よくわかりません。 対処法ご存知の方、アドバイスいただけると助かります。

    • ベストアンサー
    • PHP
  • PHPでMySQLに接続失敗

    Apache_2.0.55 php-5.1.2-win32 mysql-5.0.21-win32 windows XP HOME Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\sample\smp01.php on line 9 とエラーがでました。 以下の設定しているのですが、このようなエラーがでました PHPとApacheのテストは成功しています mysqlコマンドラインツールの起動・操作もできました mysqlのパスワードは設定はしていません PHPのスクリプトは実行できるのですが PHPとMySQLの接続がうまくいきません 色々と、調べているのですが原因がわかりません 初心者です、どうぞ宜しくお願いします 1 <?php 2 3 $DBSERVER = "localhost"; //MySQLサーバー名 4 $DBUSER = "root"; //ログインユーザー名 5 $DBPASSWORD = ""; //パスワード 6 $DBNAME = "sampledb"; //データベース名 7  8 //MySQLに接続します 9 $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); libmysql.dllをC:\WINDOWS\system32にコピー PHP.iniファイルでextension=php_mysql.dllをコメントから復帰 Apacheを再起動

    • ベストアンサー
    • MySQL