Metoda haszowania hasła Mysql stare vs nowe

Usiłuję połączyć się z serwerem mysql w Dreamhost ze skryptu php znajdującego się na serwerze w slicehost (dwie różne firmy hostingowe). Muszę to zrobić, aby móc przenieść nowe dane w slicehost na dreamhost. Używanie zrzutu nie jest opcją, ponieważ struktury tabel są różne i muszę jedynie przesłać niewielki podzbiór danych (100-200 rekordów dziennych) Problem polega na tym, że używam nowej metody haszowania haseł MySQL w slicehost i dreamhost używa starego, więc dostaję

$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) 

fakty:

Muszę kontynuować używanie nowej metody w slicehost i nie mogę używać starszej wersji / biblioteki phpBaza danych jest zbyt duża, aby przenosić ją codziennie z zrzutemNawet jeśli to zrobię, tabele mają różne strukturyMuszę codziennie kopiować tylko jego mały podzbiór (tylko zmiany dnia, 100-200 rekordów)Ponieważ tabele są tak różne, muszę użyć php jako mostu do normalizacji danychJuż go wyszukałemRozmawiałem już z obydwoma stacjami wsparcia

Bardziej oczywistą opcją dla mnie byłoby rozpoczęcie korzystania z nowej metody MySQL Password Hashing w dreamhost, ale nie zmienią jej i nie będę rootem, więc nie mogę tego zrobić sam.

Jakiś dziki pomysł?

Według sugestii 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)

Oczywistą rzeczą teraz byłoby uruchomienie mysql> SET GLOBAL old_passwords = 0; Ale potrzebuję SUPER przywileju, żeby to zrobić, a oni mi tego nie dadzą

jeśli uruchomię zapytanie

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

Dostaję błąd

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

Nie jestem rootem ...

Facet z Dreamhost wspiera uparcie mówiąc, że problem jest na moim końcu. Ale powiedział, że uruchomi każde zapytanie, które mu powiem, ponieważ jest to prywatny serwer. Więc muszę powiedzieć temu facetowi DOKŁADNIE, co uruchomić. Więc, mówiąc mu, żeby uciekał

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';

byłby dobry początek?

questionAnswers(6)

yourAnswerToTheQuestion