のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,743人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    元スレMySQL 総合 Part15

    mysql覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - insertall + - mregexp + - SSD + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    701 = :

    申し訳ありません。
    適当なスレッドが無かったので、ここで質問させて下さい。

    現在JSP+Servlet+MySQLでWebアプリケーションの作成を行っています。
    数日前から突然MySQLへの接続が出来なくなってしまいました。

    運用を開始してから数日間は普通にselect、insertなどを実行出来ていたのですが、突然MySQLへ繋がらなくなりました。
    調査した結果、ServletのgetConnection()でエラーが出ていました。(getConnection()のあるDaoは運用開始時からいじっていません)
    JDBCに原因があると思い、バージョンを変更しましたが、接続出来ません。
    また、MySQLに問題あると思い、一度アンインストールし、入れなおしましたが、やはり接続出来ません。

    いろいろ調べてみましたが、どうしても分かりません。
    どなたか原因が分かる方がいたら是非教えてください。

    ◆エラーメッセージ
    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    Last packet sent to the server was 0 ms ago.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

    702 = :

    コネクション使い切ってんじゃないの?
    解決策はともかく、原因調べるためにアプリケーションサーバのほう再起動してみては

    703 = :

    >>701
    WebサーバからDBサーバへ、コンソール経由で同じ接続情報で試してみよう。
    それで接続できないようなら、JDBC以前の問題。

    706 = :

    echoでいいじゃん

    707 = :

    >>706
    できましたーーー!ありがとうございます!

    708 = :

    >>697
    「PHP,」で検索すれば?

    709 = :

    >>698
    よくわかりませんが、いろいろ検索して調べてみます。
    ありがとうございます。

    >>708
    ありがとうございます。
    しかしそれだと、「PHP」を検索したつもりが、「Cake PHP」にも引っかかる、という事態になります。
    また、「Smarty,PHP」となっていた場合、引っかからなくなるという問題もあります。

    710 = :

    >>709
    select tags from blog where tags regexp '(^|[^[:alnum:]])PHP([^[:alnum:]]|$)';
    ただし、1000レコードを超えるテーブルとかだと重すぎて使い物にならないかもしれん。

    711 = :

    >>709
    いろいろやってみる前に正規化について短めのドキュメントでも
    読んでおいた方が良い。DB設計の根っ子の話だから。
    基本的にこの手の問題は全文検索インデックスでも使わない限り
    ちゃんと正規化しないと全行スキャンになってスピードが出ない。
    10000件記事があったら毎度10000件検索するはめになる。

    712 = :

    710だが、リファレンスよく読んだら regexp '[[:<:]]PHP[[:>:]]' で済むことに後から気づいた。
    とはいえ、みんな言ってるようにDB設計上は邪道なのでsplitされたものを格納することを激しく推奨する。
    特にタグ情報とかだと、いずれgroup byで集計したくなる場面が出てきたときに
    今の設計のままだと後悔するぞ。

    715 = :

    どなたか>>704をお願いします。

    716 = :

    >>715
    MySQL Administratorのテーブルエディタに、フィールドのコメント欄があった気がする。

    717 = :

    >>714
    ありがとうございますー

    720 = :

    >>719
    ありがとうございます!

    721 = :

    >>702
    アプリケーションサーバーはもちろん、PCを再起動しても接続出来ません。
    コネクションについても調べてみましたが、やはりコネクション自体はひとつしか使っていませんでした。
    show processlistで確認。

    >>703
    >WebサーバからDBサーバへ、コンソール経由で同じ接続情報で試してみよう。
    とはどういうことでしょうか?
    現状ローカルPC内で開発しております。

    違うプロジェクトを作成し、そこからアクセスしても繋がりません。
    いろいろ調べてみると、どうやらclose()の仕方が悪かったのではと思います。
    運用開始してしばらくは正常に接続できたので、その間にコネクション?が一杯になり
    アクセス出来なくなったのではと勝手に思っておるのですが、このコネクション?の解放方法
    が分かれば教えてください。

    ただ、そうするとMySQLをアンインストールして入れ直したのにコネクションが解放されてない
    ということで問題だと思うのですが・・・・ともかくいろいろ調査したのですが、原因がさっぱり
    分かりません。どうかお助け下さい。

    722 = :

    そのローカルで別の手段でMySQLにアクセスしてみるってことだよ。
    最初の問題と後のでは理由が違う気がするが。
    再インストールした時点で設定変わっちゃってないか?

    もうちょっと環境を詳しく書いてくれないか、もしWindowsならFWとかも。

    723 = :

    >>722
    >そのローカルで別の手段でMySQLにアクセスしてみるってことだよ。
    コマンドプロンプト上からはアクセス出来ました。selectもinsertも問題なく実行出来ました。
    だからJDBCに問題があると思ったのですが。

    >もうちょっと環境を詳しく書いてくれないか、もしWindowsならFWとかも。
    はい。

    OS:Windows VISTA SP1
    DB:MySQL 5.0.67
    サーバー:Tomcat 5.5、6.0
    JAVA:JDK 1.6
    JDBC:5.1.7、5.0.8
    など

    ファイアウォールについてはOS、ウィルスソフトともオンになっています。
    試しにどちもらオフで実行してみましたが、やはり接続出来ませんでした。

    ここはDB、Tomcatとも新しく入れ直した方良いでしょうか?postgreSQLとか。
    仮に新しく入れ直しても接続出来ない(getConnection()でエラーが出る)場合は、何が原因だと思いますか?
    やはりJDBCですかね?

    724 = :

    >>723
    >>703 で指摘してあるように、確実に同じ接続情報で試してみた?
    Java側で
    DriverManager.getConnection("jdbc:mysql://mymachine/");
    としてるなら、コンソールでは
    > mysql -hmymachine
    みたいにしないと同じ接続情報にはならないよ。

    725 = :

    >>724
    え、そうなんですか?

    自分は「スタート」-「すべてのプログラム」-「MySQL」-「MySQL Server 5.0」-「MySQL Command Line Client」
    から実行した結果なんですが。

    Java側は以下になっております。

    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myhp", "root", "1028");

    つまり上記の場合、コマンドプロンプトで
    mysql -localhost:3306/myhp -u root -p 1028
    という風に接続してみろってことですね。

    わかりました。やってみます。

    726 = :

    >>724
    実行してみました。

    ただし、「mysql -localhost:3306/myhp -u root -p 1028」では出来なくて、
    「mysql localhost:3306/myhp -u root -p 1028」としたら実行出来ました。

    実行したらステータス?がズラッと出てきたんですが、これって接続出来てるのでしょうか?

    Variables (--variable-name=value)
    and boolean options {FALSE|TRUE} Value (after reading options)
    --------------------------------- -----------------------------
    auto-rehash TRUE
    character-sets-dir (No default value)
    default-character-set sjis
    comments FALSE
    compress FALSE
    database (No default value)
    delimiter ;
    vertical FALSE
    force FALSE
    named-commands FALSE
    local-infile FALSE
    no-beep FALSE
    host (No default value)
    html FALSE
    xml FALSE
    line-numbers TRUE
    unbuffered FALSE
    column-names TRUE
    sigint-ignore FALSE
    port 3306
    prompt mysql>
    quick FALSE
    raw FALSE
    reconnect TRUE
    shared-memory-base-name (No default value)
    socket (No default value)
    ssl FALSE
    ssl-ca (No default value)
    ssl-capath (No default value)
    ssl-cert (No default value)
    ssl-cipher (No default value)
    ssl-key (No default value)
    ssl-verify-server-cert FALSE
    table FALSE
    debug-info FALSE
    user root
    safe-updates FALSE
    i-am-a-dummy FALSE
    connect_timeout 0
    max_allowed_packet 16777216
    net_buffer_length 16384
    select_limit 1000
    max_join_size 1000000
    secure-auth FALSE
    show-warnings FALSE

    727 = :

    >>726
    引数間違えてる。
    mysql -hlocalhost -P3306 -uroot -p1028 myhp

    728 = :

    >>727
    ありがとうございます。
    今試してみたんですが、正常に接続出来ました。
    またselect、insertも正常に実行できました。
    実行結果は以下となります。

    C:\>mysql -hlocalhost -P3306 -uroot -p1028 myhp
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 13
    Server version: 5.0.67-community-nt MySQL Community Edition (GPL)

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    上記、「Your MySQL connection id is 13」とありますが、このid is 13というのは
    原因に関係してますでしょうか?と思いましたが関係ないですよね。

    やはりコマンドプロンプト上からは正常に接続できるのでJDBCの問題なんでしょうか?
    どうかアドバイスをお願い致します。

    729 = :

    >>728
    idが13なのは別に問題ない。勝手に番号が振られる接続識別子かと。
    コマンドラインで問題ないなら、Javaから接続するときの固有問題なのかねぇ。
    あとは、接続文字列を "jdbc:mysql://localhost:3306/myhp?autoReconnect=true" にして
    試してみるとかかなー。

    730 = :

    >>729
    >あとは、接続文字列を "jdbc:mysql://localhost:3306/myhp?autoReconnect=true" にして
    試してみるとかかなー。

    以下内容で試してみましたが全て同じエラーが発生しました。

    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myhp?autoReconnect=true");
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myhp?autoReconnect=true", "root", "1028");
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myhp?autoReconnect=true&user=root&password=1028");
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myhp?user=root&password=1028&autoReconnect=true");

    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

    731 = :

    >>729
    すみません途中で送信してしまいました。

    上記エラーですが、3回接続を試みてみたけど、databaseとconnectionが繋がらない。諦めてください。
    っていう意味ですかね?

    う~~ん・・・一体どうしたら良いのか・・・・・
    いっそのことOSを初期化するのが近道な気がしてきました。

    ひょっとするとeclipseの設定が悪いんですかね?
    一度eclipseを入れ直して、もう一度試すか検討してみます。

    732 = :

    まあ一番問題なのは、原因も分からないうちから再インストールを繰り返すところだけどな。
    そこまで入れなおししちゃうと要因が複数になっちゃってる可能性もあるし、
    いったんクリーンにして1からやってみるのがいいかもね。

    733 = :

    >>732
    はい。そうしてみます。

    eclipse、tomcat、mysql、jdbc、java、全部一度アンインストールして入れ直して試してみます。

    長々とお付き合い頂き、ありがとうございました。

    735 = :

    COALESCE(SUM(何とか),0)とか

    736 = :

    ただ、結果が0なのではなくて0件で1度も足してないだけだと思うけどね。

    737 = :

    >>735-736
    どうもです。
    後で確認してみます。

    740 = :

    >>739
    0じゃなくて1が入ったことに怒っているのかな?

    741 = :

    四捨五入されちゃうのかな。

    742 = :

    整数型だもんな

    743 = :

    >>738
    醤油ぅこと~

    746 = :

    米IBM、サン・マイクロシステムズ買収で交渉
    http://jp.reuters.com/article/technologyNews/idJPJAPAN-37047020090318

    MySQLどうするつもりかな

    747 = :

    どうもせんだろ。おいしく頂くだけでは?
    DB2とはうまく棲み分けできそうだし。

    748 = :

    SUNってそんなやばかったんか

    750 = :

    むしろ、その逆。


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - insertall + - mregexp + - SSD + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について