0

DBIを介してDBに接続するためのテンプレートは次のとおりです。

 $dbh = DBI->connect($data_source, $username, $password)
        or die $DBI::errstr;

$data_sourceの説明は次のとおりです。

dbi:DriverName:database=database_name;host=hostname;port=port

私の理解では、ホスト+ポートは、複数のスキーマを含むmysqldプロセスのインスタンスを識別し、スキーマにはテーブルが含まれます。では、この階層のどこに「データベース」があるのでしょうか。「データベース」という言葉はmysqldインスタンスを指す場合もあれば、スキーマを指す場合もあります。

更新1:クライアントがTCP / IPポートで接続し、SQL要求を「データベース」として送信する「サーバー」(たとえば、デーモンプロセス-ハードウェアの一部ではない)を参照することは正しいですか?そうでない場合、それは何と呼ばれますか?

4

1 に答える 1

0

Perl::DBI は、多くの異なるベンダーのデータベースに接続できます。そのため、接続先の DB によって条件が異なります。これをスキーマと呼ぶ人もいれば、データベースと呼ぶ人もいます。

UPDATE1 の場合: mysql.sock ファイルのことだと思いますか? ここで説明されている mysql_socket オプションを参照してください: How do I tell DBD::mysql where mysql.sock is?

于 2013-03-01T02:59:45.497 に答える