Método de hashing de senha do mysql antigo vs novo

Eu estou tentando se conectar a um servidor mysql no dreamhost de um script php localizado em um servidor no slicehost (duas empresas de hospedagem diferentes). Eu preciso fazer isso para que eu possa transferir novos dados em slicehost para dreamhost. Usar um dump não é uma opção porque as estruturas de tabela são diferentes e eu só preciso transferir um pequeno subconjunto de dados (100-200 registros diários) O problema é que eu estou usando o novo MySQL Password Hashing em slicehost, e dreamhost usa o antigo, então eu recebo

$link = mysql_connect($mysqlHost, $mysqlUser, $mysqlPass, FALSE); 

Warning: mysql_connect() [function.mysql-connect]: OK packet 6 bytes shorter than expected
Warning: mysql_connect() [function.mysql-connect]: mysqlnd cannot connect to MySQL 4.1+ using old authentication
Warning: mysql_query() [function.mysql-query]: Access denied for user 'nodari'@'localhost' (using password: NO) 

fatos:

Eu preciso continuar usando o novo método em slicehost e não posso usar uma versão / biblioteca antiga do PHPO banco de dados é grande demais para ser transferido todos os dias com um despejoMesmo se eu fiz isso, as tabelas têm estruturas diferentesEu preciso copiar apenas um pequeno subconjunto dele, em uma base diária (apenas as alterações do dia, 100-200 registros)Desde que as tabelas são tão diferentes, eu preciso usar o PHP como uma ponte para normalizar os dadosJá pesquiseiJá conversei com os dois stafs de apoio

A opção mais óbvia para mim seria começar a usar o novo método MySQL Password Hashing no dreamhost, mas eles não vão mudar isso e eu não estou root, então eu não posso fazer isso sozinho.

Alguma ideia maluca?

Por sugestão de VolkerK:

mysql> SET SESSION old_passwords=0;
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT @@global.old_passwords,@@session.old_passwords, Length(PASSWORD('abc'));
+------------------------+-------------------------+-------------------------+
| @@global.old_passwords | @@session.old_passwords | Length(PASSWORD('abc')) |
+------------------------+-------------------------+-------------------------+
|                      1 |                       0 |                      41 |
+------------------------+-------------------------+-------------------------+
1 row in set (0.00 sec)

A coisa óbvia agora seria executar um mysql> SET GLOBAL old_passwords = 0; Mas eu preciso de privilégio SUPER para fazer isso e eles não vão dar para mim

se eu executar a consulta

SET PASSWORD FOR 'nodari'@'HOSTNAME' = PASSWORD('new password');

Eu recebo o erro

ERROR 1044 (42000): Access denied for user 'nodari'@'67.205.0.0/255.255.192.0' to database 'mysql'

Eu não sou root ...

O cara no suporte do dreamhost insiste dizendo que o problema está no meu fim. Mas ele disse que executaria qualquer consulta que eu dissesse a ele, já que é um servidor privado. Então, eu preciso dizer a esse cara EXATAMENTE o que correr. Então, dizendo para ele correr

SET SESSION old_passwords=0;
SET GLOBAL old_passwords=0;
SET PASSWORD FOR 'nodari'@'HOSTNAME' = PASSWORD('new password');
grant all privileges on *.* to nodari@HOSTNAME identified by 'new password';

seria um bom começo?

questionAnswers(6)

yourAnswerToTheQuestion