First off thanks in advance for any suggestion you may have for resolving this issue, I've tried quite a few things troubleshooting this issue with no success (yet). I've searched via Google etc with not much help.
It appears there is an error with authorizations failing with mod_auth_mysql. The MySQL db for the users that will be auth'n has passwords in plain text (not encrypted). However, the main MySQL password used for "AuthMySQLUser" is encrypted. Despite .htaccess and the mysql db seeming to be setup correctly authorizations will not take place and I find the following error in the apache error log.
-- start --
[Thu Dec 02 21:44:27 2004] [error] [client <IP REMOVED>] MySQL ERROR: Client does not support authentication protocol requested by server; consider upgrading MySQL client
[Thu Dec 02 21:44:27 2004] [error] [client <IP REMOVED>] MySQL user bbbbbb not found: /members_area
--stop
Normally when I have sen the error above I can do a "SET PASSWORD FOR REMOVED@localhost = OLD_PASSWORD('REMOVED');" and it will correct the issue (for forums etc).
Here is the .htaccess file being used:
-- start --
AuthName "Authorization Required"
AuthType Basic
AuthMySQLEnable On
AuthName "Authorization Required"
AuthType Basic
AuthGroupFile /dev/null
AuthMySQLPwEncryption none
AuthMySQLCryptedPasswords Off
AuthMySQLHost localhost
AuthMySQLDB <REMOVED>
AuthMySQLUserTable members
AuthMySQLUser <REMOVED>
AuthMySQLPassword <REMOVED>
AuthMySQLNameField user_name
AuthMySQLPasswordField user_passwd
AuthMySQLAuthoritative On
require valid-user
--stop--
Here are some details of the versions being used:
Apache/2.0.52, PHP 4.3.9, mysql 4.1.7 on RHEL3
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What version of libmysqlclient did you use to compile mod_auth_mysql? It looks like perhaps you used an older version which isn't compatible with the new MySQL.
Jerry
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
There are two indicators here: first of all, the message "MySQL ERROR: Client does not support authentication protocol requested by server; consider upgrading MySQL client". This indicates that the mysql client library (libmysqlclient.a) which was linked to the module is back level (I suppose it could also be libmysqlclient.so - but I'm not sure).
The second key is that you must use OLD_PASSWORD. A current libmysqlclient library would use the new style password while an old library uses the old style password.
We don't have any direct calls to the database. We make mysql_xxx calls, which go to routines in libmysqlclient.
Can you check to see if you have multiple versions of libmysqlclient on your system?
One other thought - although it would affect other applications, also. Did you upgrade your user tables as indicated in the mysql documentation?
Jerry
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It appears that I was able to use a modified form of "SET PASSWORD FOR REMOVED@localhost = OLD_PASSWORD('REMOVED');" I had to hack around a bit before I got it to take it, but after it did it was fine.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
First off thanks in advance for any suggestion you may have for resolving this issue, I've tried quite a few things troubleshooting this issue with no success (yet). I've searched via Google etc with not much help.
It appears there is an error with authorizations failing with mod_auth_mysql. The MySQL db for the users that will be auth'n has passwords in plain text (not encrypted). However, the main MySQL password used for "AuthMySQLUser" is encrypted. Despite .htaccess and the mysql db seeming to be setup correctly authorizations will not take place and I find the following error in the apache error log.
-- start --
[Thu Dec 02 21:44:27 2004] [error] [client <IP REMOVED>] MySQL ERROR: Client does not support authentication protocol requested by server; consider upgrading MySQL client
[Thu Dec 02 21:44:27 2004] [error] [client <IP REMOVED>] MySQL user bbbbbb not found: /members_area
--stop
Normally when I have sen the error above I can do a "SET PASSWORD FOR REMOVED@localhost = OLD_PASSWORD('REMOVED');" and it will correct the issue (for forums etc).
Here is the .htaccess file being used:
-- start --
AuthName "Authorization Required"
AuthType Basic
AuthMySQLEnable On
AuthName "Authorization Required"
AuthType Basic
AuthGroupFile /dev/null
AuthMySQLPwEncryption none
AuthMySQLCryptedPasswords Off
AuthMySQLHost localhost
AuthMySQLDB <REMOVED>
AuthMySQLUserTable members
AuthMySQLUser <REMOVED>
AuthMySQLPassword <REMOVED>
AuthMySQLNameField user_name
AuthMySQLPasswordField user_passwd
AuthMySQLAuthoritative On
require valid-user
--stop--
Here are some details of the versions being used:
Apache/2.0.52, PHP 4.3.9, mysql 4.1.7 on RHEL3
Hi,
What version of libmysqlclient did you use to compile mod_auth_mysql? It looks like perhaps you used an older version which isn't compatible with the new MySQL.
Jerry
I used the following syntax to compile:
/usr/local/apache2/bin/apxs -c -D APACHE2 -L/usr/lib/mysql -I/usr/include/mysql -lmysqlclient -lm -lz mod_auth_mysql.c
I am running the RPMs from mysql.org the following are installed:
MySQL-devel-4.1.7-0
MySQL-shared-4.1.7-0
MySQL-bench-4.1.7-0
MySQL-shared-compat-4.1.7-0
MySQL-embedded-4.1.7-0
MySQL-server-4.1.7-0
MySQL-client-4.1.7-0
Hmm, the compile looks fine.
There are two indicators here: first of all, the message "MySQL ERROR: Client does not support authentication protocol requested by server; consider upgrading MySQL client". This indicates that the mysql client library (libmysqlclient.a) which was linked to the module is back level (I suppose it could also be libmysqlclient.so - but I'm not sure).
The second key is that you must use OLD_PASSWORD. A current libmysqlclient library would use the new style password while an old library uses the old style password.
We don't have any direct calls to the database. We make mysql_xxx calls, which go to routines in libmysqlclient.
Can you check to see if you have multiple versions of libmysqlclient on your system?
One other thought - although it would affect other applications, also. Did you upgrade your user tables as indicated in the mysql documentation?
Jerry
It appears that I was able to use a modified form of "SET PASSWORD FOR REMOVED@localhost = OLD_PASSWORD('REMOVED');" I had to hack around a bit before I got it to take it, but after it did it was fine.
Glad to hear you got it working, but I'm still concerned about why it doesn't work.
I'm currently using it with MySQL 4.1.7 with no problems. I am using the new password format, and it is authorizing fine.
I did, however, have to recompile mod_auth_mysql with the new libraries; I had problems similar to yours (although I didn't try OLD_PASSWORD).
Jerry