我正在尝试使用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
关于mysql - 如何使Perl DBI中的mysql_read_default_group工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38069370/