プロが教えるわが家の防犯対策術!

はじめまして。

perlからMysqlのデータベースやテーブルを作成したいと思っております。
webを検索してみたのですが、どれもデータベースに接続してから、データの操作(挿入や削除など)をするものばかりで、データベースの作成などが見つかりません。

perlからデータベースの作成などは出来ないのでしょうか?また、出来るのでしたら、どのように書けばいいのでしょうか?

以下は、データベースに接続する場合です。
use DBI;
$database="testdata";
$hostname="localhost";
$user = "aaa";
$password = "test";
$dsn="DBI:mysql:database=$database:host=$hostname";
$dbh = DBI->connect($dsn,$user,$password)||die $DBI::error;

宜しくお願いします。

A 回答 (3件)

>>今回、データベースなども動的に作成が必要になり、色々調べていた次第です。

もちろん、データベース利用方法としてはちょっと特別な事は分かっているのですが・・・。

 動的なテーブル作成は、まあ無いこともないかな?って思うんですけど、動的なデータベース作成って、たぶん必要ないと思いますよ。テスト用と本番用のデータベース切替っていうのは、ありえますが。
 でも、必要なシステムが発生したとき、アクセスのウイザードのように、いくつかの質問に答えたら、データーベースやプログラムまで、MySqlを使ってあっという間にシステムを生成してくれるものがあれば、とても嬉しいかも?です。
    • good
    • 0

通常、「データベースの作成」は、開発工程でのお仕事です。

つまりは開発者が1度だけやることですね。(変更あるから実際は違うけど・・)
で、「データベースに接続してから、データの操作(挿入や削除など)」は通常運用の作業です。つまりは、一般ユーザの仕事で、日々あるいは随時発生することす。

これを区別していないと混乱しますよ。

で、一般に、Perlからデータベースを操作するというのは、後者の作業です。前者の作業は、No.1の方が書かれたように、『直接MySQLサーバにrootでログインしてデータベース作成』を行います。
    • good
    • 0
この回答へのお礼

ありがとうございました。

私も元々データベースを管理者権限で作成しテーブルも動的には作成しておらず、データの操作のみをperlまたはphpなどで操作していたのですが、今回、データベースなども動的に作成が必要になり、色々調べていた次第です。もちろん、データベース利用方法としてはちょっと特別な事は分かっているのですが・・・。

No.1が書かれていた参考URLなども参考に、テストだけまずやって見たいと思います。
やはり基本的にデータベース作成を動的にしない方がいいかと思いますので、もう一度検討してみたいと思いますが・・・。

色々と教えていただきありがとうございました。

お礼日時:2006/09/09 11:54

動的にデータベースやテーブルを作成する必要があるのですか?


データベース作成やテーブル作成はMySQLサーバに直接アクセスして行なったほうがいいと思います。

ただしテーブル作成については
CREATE TABLE member (email varchar(40) NOT NULL, name varchar(20) NOT NULL, PRIMARY KEY ( email ))
といったクエリを渡せば動的に作成できると思います。

しかし、データベース作成は、
CREATE DATABASE db_name
だと思いますが、そもそも管理者権限がないとできないと思います。

参考URLにperlからデータベース作成する方法について回答している方がいたのでご紹介しておきますが、直接MySQLサーバにrootでログインしてデータベース作成することをお勧めします。

参考URL:http://www.mysql.gr.jp/mysqlml/mysql/msg/1062
    • good
    • 0
この回答へのお礼

ありがとうございます。

元々、私も直接サーバにrootでログインしデータベースを作成していただのでが、今回、どうしても動的にデータベースとテーブルの作成が必要になり調べていた次第です。

まだテストしていなのですが、一応データベースも作成出来るということで、これからやって見たいと思います。参考URLもとても参考になりました。
ありがとうございました。

お礼日時:2006/09/09 11:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!