mysql에 액세스하도록 Dovecot을 구성하려고 하는데 mysql 비밀번호에 공백이 있어서 작동하지 않습니다.
driver = mysql
connect = "host=localhost dbname=postfix user=postfix password=blah bluh blih"
Thunderbird/Evoution에서 내 메일함에 액세스하려고 하면 다음 오류가 발생합니다.
Jan 05 14:41:11 mx1 dovecot[28895]: auth: Fatal: mysql: Missing value in connect string: bluh
작동하도록 하는 올바른 구문을 찾을 수 없습니다. 누구든지 아이디어가 있나요?
답변1
Dovecot의 소스 코드는 공백을 사용하여 연결 문자열의 필드를 구분합니다.
따라서 공백이 없는 비밀번호를 사용하는 것이 좋습니다.
바라보다이 토론ML에서는
이것을 참조합니다.비둘기장 소스 코드의 일부
static int driver_mysql_parse_connect_string(struct mysql_db *db,
const char *connect_string,
const char **error_r)
{
const char *const *args, *name, *value;
const char **field;
db->ssl_cipher = "HIGH";
db->ssl_verify_server_cert = 1;
db->connect_timeout = SQL_CONNECT_TIMEOUT_SECS;
db->read_timeout = MYSQL_DEFAULT_READ_TIMEOUT_SECS;
db->write_timeout = MYSQL_DEFAULT_WRITE_TIMEOUT_SECS;
args = t_strsplit_spaces(connect_string, " ");
for (; *args != NULL; args++) {
value = strchr(*args, '=');
if (value == NULL) {
*error_r = t_strdup_printf("Missing value in connect string: %s",
*args);
return -1;
}
[...]