Sean,

Your diagnosis (paragraph 4) is correct, despite your efforts to talk yourself out of it. DBI is independent, but DBD::mysql needs the mysql client library. While you have upgraded to the latest DBI/DBD, you are still using the mysql 4.0.2 client library which can't authenticate to your 4.1.3 test server.

You seem to have a hole in your testing setup. You have a test mysql server, but you seem to be saying that you only have a live, production web environment. You "absolutely cannot upgrade the mysql server or Perl on the webserver", but you upgraded DBI/DBD there, if I understand correctly. You are willing to take that risk without testing but not the risk of updating the mysql client library? Personally, I wouldn't do either without testing. You need a test setup for your web environment, too.

You will need to build a test DBD::mysql against the mysql 4.1.3 client library. The result should be backward compatible, but, by all means, do test it on your current scripts before putting it into production. Make copies of everything set up to use the new DBD and test. Test your scripts against the old server using the new DBD if you want to put it into production before upgrading mysql in production, or test your scripts against the new test server using the new DBD if you want to upgrade all in one go.

Michael

sean c peters wrote:

Im having some difficulty with the perl DBI/DBD in conjunction with a MySQL upgrade. Here's the situation: On the DB server machine, i have MySQL 4.1.3beta running for testing upgrading, but MySQL 4.0.2 is also running (production).

I can connect locally on the DB server through various clients, and have permissions as needed. But when i try to connect via a web server, i get various connect errors based on the params i pass. The error that is telling me the most is:

DBI connect(...) failed: Client does not support authentication protocol requested by server; consider upgrading MySQL client at <script line XXX>

But, i upgraded the DBI to 1.43, and the MySQL DBD to 2.9004 on both the DB server and the webserver (DB client). What im thinking the problem is: the webserver is running MySQL for other apps, and the DBD is built based on that MySQL, which is pre 4.1 series, so it doesnt understand the new MySQL auth protocols. (Note the webserver is running Perl 5.6.1)

But, i didnt think that the DBD was built based on a MySQL server, because the rest of the webservers in the pool dont run MySQL, but i can still install the DBI and DBD. So im at a loss here. Can i tell the DBD to build based on the DB servers MySQL install, or does that question not even make sense?

I think i need to upgrade the MySQL client libraries on the webserver, but i dont want to disturb other peoples MySQL on that box.

Note: I absolutely cannot upgrade the mysql server or Perl on the webserver.

Any Advice?
Thank much
sean peters
[EMAIL PROTECTED]





--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to