昨天把mysql升级到了5.5.9版本,忽然发现ftp登录不了了……由于我的vsftpd是用pam-mysql验证用户的,怀疑可能是这方面出现了问题.
一一尝试:
1.首先,怀疑是pam-mysql 用来访问vsftpd.users 表的用户ftp 权限不够,
重新授权.
grant all on vsftpd.users to 'ftp'@'localhost' identified by 'XXXX';
flush privileges;
刷新权限表。
尝试ftp登录,还是失败。我用 ftp 身份本地登录mysql,一切正常.看来不是这个问题.
2.怀疑是pam-mysql 口令加密方式有问题。把配置中的crypt=2 改成 明文(0).尝试登录,还是失败。再改回来,用PASSWORD()函数重新设密码,还是失败.
3.难道又是localhost 和 127.0.0.1 的问题?都授权了一下,还是登不进。我擦~
4.不会是pam-mysql不兼容现在的mysql吧?!我倒吸了一口凉气。好在编译安装pam-mysql不是很麻烦,赶紧动手.
下载源码包,解压,进入目录,
./configure --with-mysql=/usr/local/mysql #只要这一句
直接make.
备份之前旧版本的pam-mysql.so 文件.
mv /lib/security/pam_mysql.so /lib/security/pam_mysql.so.old
复制新生成的pam-mysql 模块到 /lib/security 目录下.
cp ./.lib/pam_mysql.so /lib/security/
别忘了重新ld链接下.
ldconfig -v
别的什么也不要改,重启vsftpd.
再次尝试登录ftp,成功了~
我擦,真是pam-mysql 的原因.
一一尝试:
1.首先,怀疑是pam-mysql 用来访问vsftpd.users 表的用户ftp 权限不够,
重新授权.
grant all on vsftpd.users to 'ftp'@'localhost' identified by 'XXXX';
flush privileges;
刷新权限表。
尝试ftp登录,还是失败。我用 ftp 身份本地登录mysql,一切正常.看来不是这个问题.
2.怀疑是pam-mysql 口令加密方式有问题。把配置中的crypt=2 改成 明文(0).尝试登录,还是失败。再改回来,用PASSWORD()函数重新设密码,还是失败.
3.难道又是localhost 和 127.0.0.1 的问题?都授权了一下,还是登不进。我擦~
4.不会是pam-mysql不兼容现在的mysql吧?!我倒吸了一口凉气。好在编译安装pam-mysql不是很麻烦,赶紧动手.
下载源码包,解压,进入目录,
./configure --with-mysql=/usr/local/mysql #只要这一句
直接make.
备份之前旧版本的pam-mysql.so 文件.
mv /lib/security/pam_mysql.so /lib/security/pam_mysql.so.old
复制新生成的pam-mysql 模块到 /lib/security 目录下.
cp ./.lib/pam_mysql.so /lib/security/
别忘了重新ld链接下.
ldconfig -v
别的什么也不要改,重启vsftpd.
再次尝试登录ftp,成功了~
我擦,真是pam-mysql 的原因.