我正在尝试使用my.ini文件作为配置连接mysql。
下面是我的Perl代码:use DBI;
my $dsn = "DBI:mysql:umls;mysql_read_default_group=client;";
my $dbh = DBI->connect($dsn);
这里是my.ini文件:
...
[client]
host=localhost
user=root
password=mypassword
database=umls
port=3306
....
根据官方文件(http://search.cpan.org/~capttofu/DBD-mysql-4.033/lib/DBD/mysql.pm),DBI将使用my.ini中的信息来连接mysql,然而,它给我错误:errors
我认为问题是DBI从未成功读取my.ini,所以它使用ODBC@localhost作为默认值。
如果我在connect()中指定用户名和密码,连接将工作。谁能帮我弄清楚为什么'mysql_read_default_group=client'
不能工作?我会非常非常感激!由于
我读了一些文档来回答你的问题,我发现你需要在不同的部分提供用户名和密码,你也需要提到文件名。像
[myapp]
host=localhost
user=root
password=mypassword
database=umls
port=3306
然后my $dbh = DBI->connect("DBI:mysql:test"
. ";mysql_read_default_file=$ENV{HOME}/.my.cnf"
.';mysql_read_default_group=myapp',
undef,
undef
) or die "something went wrong ($DBI::errstr)";
希望这对你有帮助。
参考:http://www.perlmonks.org/?node_id=519356