- 締切済み
【至急】MySQLのエラーを解消したいのですが?
データを間違って消してしまい、サーバーにデータを バックアップ復活したのですが、以下の様なエラーが生じており、 困っております。 MySQLのエラーを解消したいのですが?、知識がなく、どうすればいいのでしょうか? ・1)Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL Server Host '0net' (1) in /ファイルパス/ファイル.php on line 7 ・2)Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /ファイルパス/ファイル.php on line 8 ・3)Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /ファイルパス/ファイル.php on line 8 ・4)Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /ファイルパス/index.php on line 5 ・5) Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /ファイルパス/index.php on line 5 ・6) Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /アフィルパス/index.php on line 6 ・7) Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /ファイルパス/index.php on line 6
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- INTLINSIDE
- ベストアンサー率42% (383/907)
mysql on linux http://www.atmarkit.co.jp/flinux/rensai/mysql02/mysql02.html とりあえず、show databaseなど状況確認をするためのSQLだけを発行し、insertやupdateやdeleteなどはDBに変更を加えるSQLは発行しないでください。 (show database;の結果に mysql は必ず有ります。これは関係ないです) で他の名前のDBが無かったりテーブルが存在しない場合は、今までのデータは消えたという事です。 セットアップ用のSQLを発行するか、セットアップ用のPHPスクリプトがあれば、それを実行して、新規にセットアップする以外にはないでしょう。 両方とも無ければ、ソースが読めないとお手上げです。
- sykt1217
- ベストアンサー率34% (277/798)
>Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource まずは mysql_num_rows() とはどういう関数か、などを調べることをお勧めします。 http://manual.xwd.jp/function.mysql-num-rows.html mysql_num_rows()とは「『結果における行数を返す』関数である」と書かれています。 以上のことから、「結果における行数を取得できなかった」ことが理由によるエラーであることになります。 他の物も同様の理由によるものです。 そのPHPはデータがあることを前提に作られており、データが未登録の場合を考慮していません。 ですので、まずは元々あったデータを復元するところから始めねばなりません。 それができれば今のエラーはなくなるはずです。 恐らくmysql_num_rows()関数処理の前にクエリ(SQL)を発行していると思いますので、それの”FROM ○○”の○○をテーブル名とするテーブル・データを作成して下さい。 蛇足ですが、このプログラムは質問者様ご自身が作られたものではないのでしょうか。 もしご自身が作ったものでないならば、まずは作った当人に問い合わせるのが先決かと思います。(下手に内部をいじると不具合(バグ)の原因になります。) データのSELECT・INSERT・UPDATEにはデータの型なども重要になりますので、それらも下手なやり方をすると不具合が生じることがあります。 パッケージの重さは私にはわかりませんが、そこまで軽くない(少なくとも質問者様の技術では対応しきれない)内容であれば、ご自身で全てをカバーするべきではありません。
- INTLINSIDE
- ベストアンサー率42% (383/907)
いろいろいじる前に 直接アクセスして show databases; use <database> show tables; 等のSQLで結果を確認して、ターゲットとなるDBが存在するのか、テーブルが存在するのかなどを確認してみたほうが良いと思います。 ちなみに OS はなんでしょう。 windowsなら、MySQLAdministratorなどでも確認できます。
補足
ありがとうございます。 直接アクセスする方法が分かりません。 サーバーのOSは、linux でサーバー特有のデータベース管理ツールは あります。 サーバー会社に何度かメールしましたが、サポート外と言われます。
- sykt1217
- ベストアンサー率34% (277/798)
>あと、MySQLにログインすると 意味が不明確です。 ログインとはどういう意味ですか? また >中身が何もないみたいですが とは「テーブルがない」ということですか?それとも「DBがない」ということですか? 「テーブルがない」だけなら今回の質問内容にあるエラーとは根本的な因果関係はありませんが、「DBがない」のであれば、コネクトした次にDB指定でエラーになると思います。 定数化してるということですね。 それであれば、一度PHPファイルにベタ書きにしてみてください。 もしそれでコネクトが成功するようなら定数ファイルの定数の設定の仕方に問題があることになりますし、逆にできないなら、やはりホスト名に誤りがあることになります。 まずはエラーの原因を色んな方法を試して模索するところから始めましょう。
お礼
何度も、本当に申し訳ございません。 ポートを、12517 を付与したら、最初のエラーは 解消されましたが、今度は、以下の様な4点のエラーが 発生しました。 ・1) Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /ファイルパス/ファイル名.inc on line 15 ・2) Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /ファイルパス/ファイル名.inc on line 19 ・3) Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /ファイルのパス/index.php on line 57 ・4) Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /ファイルのパス/index.php on line 69
補足
>とは「テーブルがない」ということですか?それとも「DBがない」ということですか? DBは、ユーザーがあるので存在しているのだと思います。 ここでは、テーブルになると思います。
- sykt1217
- ベストアンサー率34% (277/798)
#1さんがおっしゃるように、DB接続に失敗しています。 恐らく <?php $link = mysql_connect($DBHOST, $DBUSERID, $DBPASS); $db_selected = mysql_select_db($DBNAME, $link); ?> このようになっていると思いますが、これのホスト名・ユーザーID・DBパスワード・DB名は間違っていませんか? 加えて、DBの設定によってはポートナンバーが$DBHOSTに必要になりますが、それは試しましたか?(「ホスト名:ポート」でポートを指定した形になります。) まぁ最初のエラーで「'0net'というホストはいない」と怒っているので、ホスト名が間違っているんだと思います。
補足
ありがとうございます。 例えば、ファイル名.php の中味は、以下の様です。 あと、MySQLにログインすると、中身が何もないみたいですが、これは何か関係がありますか? ユーザーは作成されております。 <? define('SERVER','データベースホストサーバー'); define('USER','データベースユーザー名'); define('PASS','パスワード'); define('DB','データベースユーザー名'); mysql_connect(SERVER,USER,PASS); mysql_select_db(DB); ?>
- INTLINSIDE
- ベストアンサー率42% (383/907)
接続できてないだけですね。たぶん。 そのスクリプト(PHP)が、どういう前提で動くのかわからないとコメントできないですね。 PHPが接続に使うMySQLサーバーのアドレスとかポートとか通信に関わる部分の設定が間違っているために、接続できないんだと思います。
補足
ありがとうございます。 こちらは、私が作成したものではなく、以前、在籍したいた担当者が作成したもので、その担当が無言で辞めたので、それで困っております。