Postfix 無法連接到 MySQL 伺服器進行身份驗證
我有一個帶有 Postfix、Dovecot
saslauthd
和一個 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.1
to的實例,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
可以將錯誤消息更改為更有用的內容。