ひでっぷの技術メモ

はてなダイアリーから移行しました

mysql

Debian系Linuxでapt-getによりmysqlを入れた場合の注意点

とは言っても普通に使う分には何の問題もないわけですが、 例えばレプリケーションなどを組む場合に/var/lib/mysqlのデータをSlave側にコピーしたりすると/etc/init.d/mysql stopでmysqlが停止しません。 実は/etc/init.d/mysqlでmysqlの起動停止するのにDeb…

mysql3.23→mysql5.0のmy.cnf設定注意点

/etc/mysql/my.cnfの設定で以下の設定をコメントアウトしないと他IPアドレスから接続できない。bind-address 127.0.0.1これをしてあげないとGRANT構文で他IPアドレスから接続するためのユーザーを作ってもうまく接続できません。 mysql3.23までではなかった…

mysqlでもStatement,PreparedStatement,ResultSetのclose()は必要

mysql5.0の接続テストをするためにmysqlのJDBCコネクタを2.0.14から5.0.8に変更しました。 その後既存のシステムのテストをしていると、なんとOutOfMemoryErrorで落ちてしまうようになった。 どうやら2.0.14の頃はStatement,PreparedStatement,ResultSetのcl…

mysqlでの不思議なエラーが解決!

前回の日記に書いた原因不明のmysqlの不思議なエラー。 DBアクセスするメソッドをsynchronizedしてもだめ。 必ずおきる特定のテーブルのデータを取得する場合、もしエラーがでたらキャッシュしているデータを返すようにしましたが、なんと別のテーブルで同じ…

mysqlでの不思議なエラー

mysql4.0.18で不思議なエラーが返って来て参ってます・・・。 JavaからあるテーブルのデータをSELECT文で取得するとごくごくまれーに以下のエラーが java.sql.SQLException : Error during query : Unexpected Exception : java.lang.ArrayIndexOutOfBoundsE…

mysqlccのわな?

もう2年近く前にシステム納品したお客さんから電話。 そこは販売管理システムを入れてるんだけど「単価で少数入れれるようにしてもらってたと思うんですけど、更新した後小数部が消えてしまいます・・・。」む? うちにあるソースやってみると・・・。 単価1…

ROW_NUMBER()関数

SQLで条件で引っ張ってきたデータの上位何件だけとかほしい時がありますよね。そんな場合mysqlではLIMIT句を用いると簡単にできます。SELECT * FROM HOGEHOGE ORDER BY ID LIMIT 1;これでID順の一番最初のデータ(一番若い物)が取り出せます。 oracleで同じ…

mysqlのレプリケーション

mysqlのレプリケーションをやってみました。 レプリケーションとはサーバーの複製を他のサーバーに自動的に作成するものです。 これをしておくと一台のサーバーのハードがおしゃかになっても、レプリケーションしてたサーバーに接続すれば大丈夫!という代物…