qpopper mysql -- "sql query fetch row failed ()"
Fred Krug <[email protected]> Tue, 21 Sep 2010 14:45:41 +0900
| Newsgroups | gmane.mail.qpopper |
|---|---|
| Message-ID | <[email protected]> |
I have just installed qpopper with the mysql patch on my CentOS 5.5 server and am having a problem querying the database. I've had this working on various other linux servers without any problem. If I query the default database it works but if I query one of the virtual database it fails. When I telnet to the default database it works: telnet localhost 110 popper[26256]: (v4.0.18-mysql-0.16) Servicing request from "server.domain.com" at 127.0.0.1+OK ready User exampleuser +OK Password required for exampleuser. Pass examplepass +OK exampleuser has 0 visible messages (0 hidden) in 0 octets However, if I telnet to a virtual database it fails: telnet localhost 110 popper[26256]: (v4.0.18-mysql-0.16) Servicing request from "server.domain.com" at 127.0.0.1+OK ready User [email protected] <21>Sep 14 13:59:54 popper[25647]: [email protected]: ERROR: sql query fetch row failed () User may not exist+OK Password required forexampleuse. NOTE:Missing letter "r" at the end of UserID. The query seems to chop off the last letter of the UserId when I use @domain.com ********************************************** Additional information regarding the set up. -Mysql 5.1.50 tarball ./configure \ --prefix=/usr/local/mysql \ --disable-maintainer-mode \ --with-mysqld-user=mysql \ --with-unix-socket-path=/tmp/mysql.sock \ --without-comment \ --without-debug \ --without-bench This is the same database that I've been using for years and earlier versions of qpopper have always worked. I inserted a test user/domain. [QUOTE]mysql> INSERT INTO radcheck (id, UserName, attribute, value, uid, gid,domain, alias, is_alias, net_id) VALUES ('999', 'exampleuser', '', 'test','500', '12', 'differentdomain.com', '', 'no', 'exampleuser'); Query OK, 1 row affected (0.03 sec)[/QUOTE] When I log on to the database all looks fine: mysql> select * from radcheck where net_id = 'exampleuser'; +-----+----------+-----------+-------+-----+-----+-------------+-------+----------+---------+ | id | UserName | attribute | value | uid | gid | domain | alias | is_alias | net_id | +-----+----------+-----------+-------+-----+-----+-------------+-------+----------+---------+ | 999 | exampleuser | | test | 500 | 12 | differentdomain.com | | no | exampleuser | +-----+----------+-----------+-------+-----+-----+-------------+-------+----------+---------+ 1 row in set (0.00 sec) I granted mailadmin full permission. [QUOTE]> grant all privileges on radius.* to 'mailadmin'@'localhost' identified by 'secret'; >flush privileges;[/QUOTE] I download Qpopper qpopper4.0.19.tar.gz (this is the version mysql patch was written for) and the patch qpopper3.1.2-mysql-0.1.patch. I patched it (no errors) and compiled/made it (no errors). ./configure \ --with-mysqlconfig=/etc/mysql-popper.conf \ --enable-mysql \ --with-mysqllibpath=/usr/local/mysql/lib/mysql \ --with-mysqlincludepath=/usr/local/mysql/include/mysql \ --enable-standalone \ --enable-shy \ --enable-servermode This is a copy of mysql-popper.conf [QUOTE]MysqlAuthHost localhost MyslAuthPort 3306 MysqlAuthDb radius MysqlAuthTable radcheck MysqlAuthUsername mailadmin MysqlAuthPassword secret MysqlAuthUsernameField username MysqlAuthPasswordField value MysqlAuthDomainField domain MysqlAuthAliasField alias AliasField is_alias MysqlAuthAliasNo no MysqlAuthPasswordMethod both MysqlAuthDefaultDomain domain.com MysqlAuthUIDField uid MysqlAuthGIDField gid MysqlAuthUID mail MysqlAuthGID mail POP_MAILDIR /var/spool/virtual_mail[/QUOTE] This set up has always worked for me in the past but it isn't working with the new qpopper/patch. As I mentioned, it is chopping the last letter off the UserID. I've dug through the logs but couldn't find anything that would point me in the right direction. Any advice on how to solve this would be greatly appreciated. All the best Fred -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.