Mysql

Postfix 無法連接到 MySQL 伺服器進行身份驗證

  • December 26, 2017

我有一個帶有 Postfix、Dovecotsaslauthd和一個 MySQL 儲存和身份驗證後端的郵件伺服器。我可以很好地發送電子郵件,但是接收電子郵件(在這種情況下來自 Outlook)失敗並顯示以下消息/var/log/mysql/mysql.log

MySQL 日誌顯示以下錯誤:

53 Connect   mail@localhost on mail
53 Connect   Access denied for user 'mail'@'localhost' (using password: YES)
54 Connect   mail@localhost on mail
54 Connect   Access denied for user 'mail'@'localhost' (using password: YES)
55 Connect   mail@localhost on mail
55 Connect   Access denied for user 'mail'@'localhost' (using password: YES)
56 Connect   mail@localhost on mail
56 Connect   Access denied for user 'mail'@'localhost' (using password: YES)

但是,當我登錄時,我似乎無法登錄到 MySQL 伺服器

mysql -u mail -p -h localhost

我可以正常登錄。已知密碼在這兩種情況下都是正確的。

我有一種感覺,這一切都是由 Postfix(我認為隨後是 SMTPD?)chroot/var/spool/postfix. 我嘗試禁用 chroot並安裝mysql.sock到 Postfic chroot 中的文件夾,但沒有任何變化。

我也嘗試過更改127.0.0.1to的實例,localhost反之亦然,但無濟於事。Google已經被我試圖尋找解決方案的嘗試弄得筋疲力盡。也許我在尋找錯誤的東西。

我需要做什麼才能允許 Postfix 訪問在同一台伺服器上執行的 MySQL 數據庫?我想將 MySQL 用於 PHP 等其他東西,因此 Postfix 專有解決方案並不是一個真正的選擇。這已經困擾了我 3 天了,我已經嘗試了所有的解決方案。

我的/etc/postfix/sasl/smtpd.conf樣子是這樣的:

pwcheck_method: auxprop
mech_list: PLAIN LOGIN
log_level: 7
allow_plaintext: true
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: localhost
sql_user: mail
sql_passwd: [hidden]
sql_database: mail
sql_select: select password from mailbox where username='%u@%r' and active = 1

我不確定要發布哪些其他文件,所以請發表評論,我會相應地更新。我正在執行 Ubuntu Server 12.10 32 位。

這對我來說是一個完全愚蠢的錯誤。原來在配置文件/etc/postfix/sasl/smtpd.conf中,和其他欄位後面有一個空格sql_passwd,表示認證失敗。

我有同樣的問題使用者名/密碼正確但在我的情況下,我有這個查詢:

query = select 1 as found from users where email = '%u@%d' and enabled = true LIMIT 1;

問題是結局;

我剛剛刪除,它工作

query = select 1 as found from users where email = '%u@%d' and enabled = true LIMIT 1

可以將錯誤消息更改為更有用的內容。

引用自:https://serverfault.com/questions/483456