6个版本
0.1.5 | 2022年12月3日 |
---|---|
0.1.4 | 2022年11月18日 |
0.1.3 | 2022年3月16日 |
0.1.2 | 2020年11月23日 |
0.1.1 | 2020年6月25日 |
#339 在 认证 中
13KB
123 行
myloginrs
读取并解析MySQL的.mylogin.cnf文件。
安装
将myloginrs
添加到Cargo.toml
[dependencies]
myloginrs = "0.1"
示例
要获取客户端登录信息的HashMap,只需使用解析函数
let file_path = PathBuf::from(
"tests/test_mylogin.cnf",
);
let client_info = myloginrs::parse("client", Some(&file_path));
然后你可以使用这个HashMap与一个OptsBuilder
或mysql库中的其他结构体
let opts = OptsBuilder::new()
.ip_or_hostname(Some(&client_info["host"]))
.tcp_port(u16::from_str_radix(&client_info["port"], 10)?)
.user(Some(&client_info["user"]))
.pass(Some(&client_info["password"]));
let _conn = Conn::new(opts);
从mysql 20.1.0版本开始,你可以做得更简单
let opts = OptsBuilder::new().from_hash_map(&client_info).unwrap();
let _conn = Conn::new(opts);
如果你想要一个包含整个文件的String,请使用read
let mylogin_plaintext = myloginrs::read(None);
println!("{}", mylogin_plaintext);
第二个示例传递None
作为路径以使用默认.mylogin.cnf位置(在Windows上为%APPDATA%\MySQL\.mylogin.cnf
,在其他所有系统上为~/.mylogin.cnf
)。
其他内容
感谢
- github.com/PyMySQL和
- github.com/ocelot-inc为完成所有艰苦的工作,并从他们那里移植。
许可
许可协议为以下之一
- Apache License, Version 2.0, (LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT或https://open-source.org.cn/licenses/MIT)
任选其一。
贡献
欢迎Pull requests。 :)
除非你明确表示,否则,根据Apache-2.0许可证定义的,任何有意提交以包含在作品中的贡献,都将根据上述许可证双许可,没有其他附加条款或条件。
依赖关系
~3–4MB
~82K SLoC