Why does MySQL reject my postfix virtual domain query as "an error in your SQL syntax"?
I have problem with MySQL Courier + Postfix Email Server
Here is error log:
warning: mysql:/etc/postfix/mysql-virtual_domains.cf: query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'virtual FROM `domains` WHERE domain='domain.example'' at line 1
And code in mysql-virtual_domains.cf
:
user = mail_admin
password = mypassword
dbname = mail
query = SELECT domain AS virtual FROM `domains` WHERE domain='%s'
hosts = 127.0.0.1
What to do?
VIRTUAL is a keyword in MySQL.
Use a different alias, escape the identifier using backticks.. or just skip the AS [alias]
part altogether: maps configured for virtual_alias_domains
are only used to check whether there is a result anyway, not what the result is:
a "type:table" lookup table is matched when a table entry matches a lookup string (the lookup result is ignored) -- from man 5 postconf