首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在perl DBD::mysql中使用--login-path=local

问在perl DBD::mysql中使用--login-path=local
EN

Stack Overflow用户
提问于 2016-07-25 22:12:05
回答 1查看 677关注 0票数 2

mysql支持使用存储在名为.mylogin.cnf的文件中的本地身份验证凭据进行无密码登录(有关详细信息,请参阅here )。

例如:

代码语言:javascript
复制
mysql --login-path=local

我的问题是:如何使用DBD::mysql在perl中做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2016-07-25 23:04:21

MySQL使用MySQL C应用程序接口,它似乎不支持登录路径。或者,您可以在connect调用中使用option file以及mysql_read_default_file和mysql_read_default_group选项:

代码语言:javascript
复制
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
});

您的选项文件应如下所示:

代码语言:javascript
复制
[local]
host     = localhost
database = foo
user     = myuser
password = mypassword

[remote]
host     = remote.example.com
database = foo
user     = myuser
password = mypassword

请注意,与.mylogin.cnf (--login-path使用的文件)不同,常规选项文件不会加密。这并不是一个听起来那么大的问题。加密的主要好处是它可以防止您意外地暴露您的凭证,例如在查看文件时,但它不提供牢不可破的安全性。你仍然可以通过确保它不是完全可读的,从版本控制中排除它,等等来保护你的选项文件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38570085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档