关于vsftpd与mysql结合的问题,参考了网上很多的方案,结果到最后,都是login incorrect,很是纳闷
(配置基本参考这个:http://www.howtoforge.com/vsftpd\_mysql\_debian\_etch\_p2, 数据库创建参考别的,简单的那种)
不小心发现每次数据库链接,mysql的id都会+1,于是发现及时我登陆失败,也是进行了mysql验证,也就是说,我的/etc/vsftpd.conf的配置都是对的,问题是出在pam.d/vsftpd的配置或者密码验证。
检查了很久vsftpd的配置,没问题,忽然想到了数据库存的用户名和密码,都是char(16),char是固定长度,会不会和这个有关;同时也想到,通过mysql的password加密后,是否长度大于16
于是做了改动,类型都改成varchar,passwod改成长度30,发现依旧有错。看了下实际数据库里的这个字段,发现刚好长度也是30,也许还需要增长,后来扩到到50,发现登陆没错了。此时遗留了一个问题,就是权限等等,都临时解决了
后来看到(http://www.diybl.com/course/7\_databases/mysql/myshl/20090721/168051.html )中有说”需要注意的是,从MySQL4.1版本开始,password()函数生成的加密字串需要占用41个字节,因此vusers表中的passwd字段宽度应大于或等于该值,否则将导致虚拟用户验证失败 “,印证了我的想法,同时想起了最早每次插入数据的时候都有一个warning,原来是截断处理了,可惜没注意
结论:参考别人的方法的时候一定要考虑自己的本地环境,一切都要本地化,不能盲从