我正在尝试使用 SSL 和 PyMySQL 连接我的数据库,但我找不到关于语法是什么的好的文档。
这些凭据可在 Workbench 和 CLI 中使用,但在使用 PyMySQL 时出现此错误。
无法连接到“server.domain.com”上的 MySQL 服务器([WinError 10061] 无法建立连接,因为目标机器主动拒绝了它)”)
db_conn = pymysql.connect(
host=db_creds['host'],
user=db_creds['user'],
passwd=db_creds['passwd'],
db=db_creds['db'],
charset=db_creds['charset'],
ssl={'ssl':{'ca': 'C:/SSL_CERTS/ca-cert.pem',
'key' : 'C:/SSL_CERTS/client-key.pem',
'cert' : 'C:/SSL_CERTS/client-cert.pem'
}
}
)
Run Code Online (Sandbox Code Playgroud)
如果我关闭 SSL 并删除 SSL 参数,我可以连接不安全就好了。我的 SSL 参数有什么问题?
编辑:PyMySQL 现在想要像这样列出 ssl 参数而不是在字典中。
db_conn = pymysql.connect(
host=db_creds['host'],
user=db_creds['user'],
passwd=db_creds['passwd'],
db=db_creds['db'],
charset=db_creds['charset'],
ssl_ca='C:/SSL_CERTS/ca-cert.pem',
ssl_key='C:/SSL_CERTS/client-key.pem',
ssl_cert='C:/SSL_CERTS/client-cert.pem'
)
Run Code Online (Sandbox Code Playgroud) 我正在创建一个应用程序,我需要为某些特定日志发送邮件.这是我的规则文件:
es_host: localhost
es_port: 9200
name: Log Level Test
type: frequency
index: testindexv4
num_events: 1
timeframe:
hours: 4
filter:
- term:
log_level.keyword: "ERROR"
- query:
query_string:
query: "log_level.keyword: ERROR"
alert:
- "email"
email:
- "<mailId>@gmail.com"
Run Code Online (Sandbox Code Playgroud)
这是config.yaml
rules_folder: myrules
run_every:
seconds: 2
buffer_time:
seconds: 10
es_host: localhost
es_port: 9200
writeback_index: elastalert_status
alert_time_limit:
days: 2
Run Code Online (Sandbox Code Playgroud)
这是smpt_auth.yaml
alert:
- email
email:
- "<mailId>@gmail.com"
smtp_host: "smtp.gmail.com"
smtp_port: 587
smtp_ssl: true
from_addr: "<mailId>@gmail.com"
smtp_auth_file: 'D:\ELK_Info\ElastAlert\elastalert-master\smtp_auth_user.yaml'
Run Code Online (Sandbox Code Playgroud)
这是smtp_auth_user.yaml
user: "<mailId>@gmail.com"
password: "<password>"
Run Code Online (Sandbox Code Playgroud)
当我运行此命令时:
python -m elastalert.elastalert --verbose …Run Code Online (Sandbox Code Playgroud) 我正在使用 NLog 目标来使用 smtp.google.com:587 SMTP 服务器将日志发送到一些电子邮件。当我使用标准 System.Net.Mail.SmtpClient 库时,它可以正常工作,但是在使用 MailKit 时,它会抛出错误:
发送邮件时出错。异常:>System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (10061): 无法建立连接,因为目标机器主动拒绝它。>[::ffff:173.194.76.108]:587
我添加了一个带有两个控制台项目的解决方案。一种使用 MailKit 和其他 System.Net.Mail。所有设置参数看起来都一样,但它在 MailKit 中不起作用:
using System;
using System.Diagnostics;
using MailKit.Net.Smtp;
using MailKit;
using MailKit.Security;
using MimeKit;
namespace SendMailKit
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Create message");
var message = new MimeMessage();
message.From.Add(new MailboxAddress("GTS", "tfs.gettaxsolutions@gmail.com"));
message.To.Add(new MailboxAddress("Me", "info@gettaxsolutions.com"));
message.Subject = "Test mail";
message.Body = new TextPart("plain")
{
Text = @"Hello, This is the test"
};
Console.WriteLine("Create SMTP client");
using (var client = …Run Code Online (Sandbox Code Playgroud) let socket_CreateBindListen (sv_ : string) (pt_ : int) : Socket option =
let (he : IPHostEntry) = Dns.GetHostEntry(sv_)
let rsock, ipe =
he.AddressList
|> Seq.map (fun s ->
let (ipe2 : IPEndPoint) = new IPEndPoint (s, pt_)
let (rsock2 : Socket) = new Socket (ipe2.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
rsock2.Connect ipe2 ///// <---- No connection could be made because the target machine actively refused it
rsock2, ipe2)
|> Seq.find (fun (s, t) -> s.Connected)
try
rsock.Bind ipe …Run Code Online (Sandbox Code Playgroud)