• ベストアンサー

Perl5とMysql

こんにちは。 今、初めてPerl5とMysql組み合わせでサイトを構築中なんですが、Perlの関数にflockってありますよね。ファイルのロックをするやつです。 私はデータベースを使うのが初めてなんですが、やはりこのような処理は必要なんでしょうか?もし必要ならどのような方法で行えばよいのでしょうか?

  • Perl
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • dany
  • ベストアンサー率35% (27/77)
回答No.1

RDBM使う場合はそっち側でロック関係やってくれるから Perl側で意識してロックする必要はないです。たぶん。 たぶんというのは、MySQL触ったことがないからです。^^; PostgreSQLではそうでした。 ところでflockは環境によって使えなかったりすることがあるので、 私は↓こんなカンジでやってます。symlink許可されてない場合は ファイルコピーとか生成とか。 $retry = 5; while( !symlink(".","lockfile")){ die "error" if --$retry <=0; sleep(1); }

heihei100
質問者

お礼

お礼が遅くなって、本当にごめんなさい。 やはり、特別意識してロックする必要はなさそうですね。 ご親切にありがとうございました。

関連するQ&A

  • PerlとPHPで同一ファイルをファイルロック

    PerlとPHPで同一のファイルを読み書きする必要があるのですが、ファイルロックする機構を作るには互いの言語でmkdirで対応したほうがよいのでしょうか? flock関数がPerlにもPHPにもありますが、これは、PHPのプロセスで実行したロックの状態をPerlで検知したり、または逆のことはできないのでしょうか? もしできないとするとmkdirで同一の機構を作ったほうが良い気もしますが、何か問題などは起きないでしょうか。

    • ベストアンサー
    • PHP
  • Perlでロック不具合?

    Perlを使用して、掲示板のようなものをつくり、ずっと稼動させていましたが、 今日、データが消えてしまいました。 データのファイルサイズがゼロになっていました。 ファイルの書込み時には、flockを使用してロックをかけています。 #--ロック flock LOCK,2; #--アンロック flock LOCK,8; どのような原因が考えられますでしょうか? flockが使用できることは、別途スクリプトを作って確認済みです。 環境 SuSE linux 9 Perl v5.8.3 書込みが最大で1日に30件程度 宜しくお願いします。

    • ベストアンサー
    • Perl
  • perlからデータベースを利用する方法

    perlでデータベースを利用したいと思っています。 データベースはMySQLです。 プログラミングをする際、データベースを利用するための機能を、 どのように組み込めば良いのかわかりません。 どのような関数を用いるのが一般的でしょうか? または、perl自体に機能を追加する必要があるのでしょうか?

    • ベストアンサー
    • Perl
  • Perlでのデータベース利用

    とても一般的な質問になりますが、 そこそこ規模の大きな(目標会員数一万人)会員サイトをPerlで構築しようとしています。 問題はデータベースへのアクセス負荷なんですが、 ひとつのテーブルのレコード数が100万行ぐらいになると思います。 一般的なホスティングサーバを利用してデータベースはMySQLです。 「大規模なデータベースシステムはJAVAサーブレットが向いている」と言う話をよく聞きますが、上述のような規模のサイトは(Perl or PHP)+MySQLでは難しいのでしょうか? 出来たらPerlで通してみたいと考えております。 ご意見、ご指導よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • MySQLにCSVファイルを入れる方法

    MySQLでデータベースを構築しています。CSVファイルにデータを構築していますがMySQLにインポートする方法が解りません。どうかおしえていただけませんでしょうか?

  • PerlとPHP・・・・

    初歩的な質問で申し訳ないのですが これからプログラムをはじめようとおもっているのですがPerlとPHPどっちから手をつけるべきだと思われますか?最終的にはmySQLなどでデータベースを構築したいと思っています・・・

    • ベストアンサー
    • CGI
  • MySQLにおいてバッチ処理でデータベースを構築する際のトラブル

    MySQLにおいてバッチ処理でデータベースを構築する際のトラブル MySQLに関しては素人です。 バッチ処理でデータベースを構築したいとおもって、バッチを指示通りの場所において、 net start mysql と打って、それから、 mysql -u root -p SampleDB040 < "C:\mysql\data\sampledb040\ファイル名.sql" として、パスワードを入れて、データベースを構築したいと思ったのですが、エラーが出て出来ません。 このエラーをどうすれば解消できるのか教えてください。 以下のようなメッセージが出ています。 ERROR 1005 (HY000) at line 10: Can't create table 'sampleDB040.t01prefecture' (errno: 121) 以上 ちなみに、同一ファイル内に同じ名前のファイルはありませんし、他のデータベースにもありませんでした。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQLは難易度が高いのでSQLiteで構築

    お世話になります。 現在Web上で動作する商品管理のツールをPHP+pdo+MySQLでデータベースを構築しています。 MySQLでの構築は初めてで、いろいろ手間がかかっています。 今まではPHP+pdo+SQLiteでデータベースを構築していました。 しかし同時書き込みでデータベースがロックしてしまうSQLiteの仕様では複数人数での運用ができません。 そこでMySQLに変更しようと思ったのですが、いろいろ覚えることが多くて時間がかかってしまっています。 やはりSQLiteの構築のしやすさは魅力的です。 そこで、MySQLでの構築を一旦中止し、SQLiteで構築しようかと思っています。 PHP側で工夫してSQLiteのデータベースへの同時書き込みを無くせば運用的には問題なさそうでしょうか? セキュリティ的に不安ですがデータベースはルートより上に置きます。 助言があればお願い致します。

  • ログの一部を消す Perl

    ログの一部を消すPerlを考えています。 ここではソースを短くするために、ログの一部を消し去って ログファイルに上書きするデータは $deta だけだとすると open F, '+<a.log'; flock F,2; $deta = <F>;//実際はここでもっと処理 truncate F,0; seek F,0,0; print F $deta; close F; と、 open IN, 'a.log'; flock IN,2; open OUT, '>a.log'; flock OUT,2; $deta = <IN>;//実際はここでもっと処理 print OUT $deta; close OUT; close IN; の2つを考えました。 上のように 読み込み と 書き込み を同時にやった方がいいのか 下のように分けてやった方がいいのか教えてください。 ロックは flock を使って、普通レベルのロックが できるぐらいでいいと思っているんだけど、 この flock の書き方でおかしいところがあれば 教えてください。

    • ベストアンサー
    • CGI
  • MySQLでデータベースを一つのファイルにひたすら保存していいのか

    MySQLでデータベースを一つのファイルにひたすら保存していいのか PHPでMySQLを使用しています。 データベースを作る時は以前から二つの方法を使っています。 ・データベースファイルを一定のデータ量になると分割する方法 ・データベースファイルを分割せず一つのファイルにひたすら保存していく方法 これはどっちがいいのでしょうか? 一つのデータベースファイルに保存し続けるとユーザーがアクセスする際は そのデータベースファイルにしかアクセスしないので共有ロックの関係で ユーザーが増えるほど分割した場合に比べてオープンが低速化したりしないでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう