【问题标题】:What does 'database' mean in mySQL DBI->connect() data-source string?mySQL DBI->connect() 数据源字符串中的“数据库”是什么意思?
【发布时间】:2013-02-15 09:52:32
【问题描述】:

下面是通过 DBI 连接 DB 的模板:

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

下面是 $data_source 的描述方式:

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

我的理解是 host + port 标识了一个包含多个 schemas 的 mysqld process 的实例,并且schema 包含 tables。那么,在这个层次结构中,“数据库”在哪里呢?有时“数据库”一词似乎指的是 mysqld 实例,而其他时候似乎指的是模式。

更新 1: 引用客户端在 TCP/IP 端口上连接并发送 SQL 的“服务器”(例如守护进程 -- 不是硬件)是否正确?请求作为“数据库”?如果不是,它叫什么?

【问题讨论】:

  • MySQL 将模式称为“数据库”。为什么?也许是因为如果 MySQL 真的做对了,它就不再是 MySQL。
  • 我们公司每年大约3000万美元使用MySQL来管理一个直销合作数据库,其中有几张表包含1亿到35亿行之间的数据——是什么不正确?
  • 哪里不对?这里列出了一些东西作为开始 - use.perl.org/use.perl.org/_Smylers/journal/34246.html

标签: database perl schema dbi mysql


【解决方案1】:

Perl::DBI 可以连接到许多不同供应商的数据库。因此,条款会有所不同,具体取决于您要连接的数据库。有些人称其为架构,有些人称其为数据库。

对于 UPDATE1:我假设您的意思是 mysql.sock 文件?请参阅 mysql_socket 选项,此处解释:How do I tell DBD::mysql where mysql.sock is?

【讨论】:

    猜你喜欢
    • 2017-02-06
    • 2015-03-17
    • 2016-05-05
    • 1970-01-01
    • 2011-01-08
    • 2017-12-03
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多