mysql支持使用存储在名为.mylogin.cnf的文件中的本地身份验证凭据进行无密码登录(有关详细信息,请参阅here )。
例如:
mysql --login-path=local我的问题是:如何使用DBD::mysql在perl中做到这一点?
发布于 2016-07-25 23:04:21
MySQL使用MySQL C应用程序接口,它似乎不支持登录路径。或者,您可以在connect调用中使用option file以及mysql_read_default_file和mysql_read_default_group选项:
use strict;
use warnings 'all';
use DBI;
my $dsn = 'DBI:mysql:' .
';mysql_read_default_group=local' .
';mysql_read_default_file=/path/to/config';
my $dbh = DBI->connect($dsn, undef, undef, {
PrintError => 0,
RaiseError => 1
});您的选项文件应如下所示:
[local]
host = localhost
database = foo
user = myuser
password = mypassword
[remote]
host = remote.example.com
database = foo
user = myuser
password = mypassword请注意,与.mylogin.cnf (--login-path使用的文件)不同,常规选项文件不会加密。这并不是一个听起来那么大的问题。加密的主要好处是它可以防止您意外地暴露您的凭证,例如在查看文件时,但它不提供牢不可破的安全性。你仍然可以通过确保它不是完全可读的,从版本控制中排除它,等等来保护你的选项文件。
https://stackoverflow.com/questions/38570085
复制相似问题