mysql> create table users ( -> id int AUTO_INCREMENT NOT NULL, -> name char(16) binary NOT NULL, -> passwd char(48) binary NOT NULL, -> primary key(id) -> );
mysql> describe users; +--------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+----------+------+-----+---------+----------------+ | id | int(11) | | PRI | NULL | auto_increment | | name | char(16) | | | | | | passwd | char(48) | | | | | +--------+----------+------+-----+---------+----------------+
Dec 26 16:18:37 javadev vsftpd[6175]: pam_mysql - option verbose is set to "1" Dec 26 16:18:37 javadev vsftpd[6175]: pam_mysql - option log.enabled is set to "1 " Dec 26 16:18:37 javadev vsftpd[6175]: pam_mysql - option log.table is set to "logs" Dec 26 16:18:37 javadev vsftpd[6175]: pam_mysql - option log.message_column is set to "msg" Dec 26 16:18:37 javadev vsftpd[6175]: pam_mysql - option log.pid_column is set to "pid" Dec 26 16:18:37 javadev vsftpd[6175]: pam_mysql - option log.user_column is set to "user" Dec 26 16:18:37 javadev vsftpd[6175]: pam_mysql - option log.host_column is set to "host" Dec 26 16:18:37 javadev vsftpd[6175]: pam_mysql - option log.rhost_column is set to "rhost" Dec 26 16:18:37 javadev vsftpd[6175]: pam_mysql - option log.time_column is set to "logtime" Dec 26 16:18:37 javadev vsftpd[6175]: pam_mysql - pam_sm_authenticate() called. Dec 26 16:18:37 javadev vsftpd[6175]: pam_mysql - pam_mysql_open_db() called. Dec 26 16:18:42 javadev vsftpd[6175]: pam_mysql - MySQL error (Unknown MySQL server host 'localhost ' (3)) Dec 26 16:18:42 javadev vsftpd[6175]: pam_mysql - pam_mysql_open_db() returning 5. Dec 26 16:18:42 javadev vsftpd[6175]: pam_mysql - pam_sm_authenticate() returning 9. Dec 26 16:18:42 javadev vsftpd[6175]: pam_mysql - pam_mysql_release_ctx() called. Dec 26 16:18:42 javadev vsftpd[6175]: pam_mysql - pam_mysql_destroy_ctx() called. Dec 26 16:18:42 javadev vsftpd[6175]: pam_mysql - pam_mysql_close_db() called.
仔細檢查,發現原因在這裡:
pam_mysql - MySQL error (Unknown MySQL server host 'localhost ' (3))
2 (or "mysql") = Use MySQL PASSWORD() function. It is possible that the encryption function used by PAM-MySQL is different from that of the MySQL server, as PAM-MySQL uses the function defined in MySQL's C-client API instead of using PASSWORD() SQL function in the query.