1

Тема: Работа с удаленным сервером MySQL с локального phpMyAdmin

Существует такая возможность:
на локальном сервере для phpMyAdmin в конфигурации ставим вместо localhost имя удаленного MySQL сервера, а также соответствующие user  ,  password  и dbname.

Вопрос:
каковы преимущества и недостатки такого способа работы по сравнению со способом, когда phpMyAdmin установлен и запускается на удаленном сервере.
Будут ли различия в:
1) быстродействии
2) трафике
3) безопасности
или в чем-то еще другом ?

Спасибо !

2

Re: Работа с удаленным сервером MySQL с локального phpMyAdmin

valeryiv
Думаю, на быстродействии никак не скажется.
Трафика будет немного меньше из-за локального запуска скриптов.
Безопасность, примерно, на том же уровне. Если на сервере настроить доступ пользователю только с вашего постоянного IP, то будет нормально. Обратите внимание, что root лучше не использовать для внешнего подключения.

3

Re: Работа с удаленным сервером MySQL с локального phpMyAdmin

Hanut, спасибо :-)

Последние версии PhpMyAdmin стали работать на удаленном сервере не всегда быстро, поэтому появилась идея работать локально. Хостинг-провайдер  дает внешний адрес MySQL-сервера, что позволяет это делать.
Есть два основных применения PhpMyAdmin:
1) экспорт-импорт таблиц (иногда довольно больших размеров - до десятков Мбайт)
2) выполнение отдельных запросов к таблицам (просмотр, поиск или ручное редактирование нескольких записей)

Как Вы считаете, в каком из этих случаев имеет смысл использовать локальный PhpMyAdmin для повышения быстродействия ? Особенно, если не учитывать трафик (сеть на безлимитном тарифе).

И вообще, существует ли у пользователей подобная практика ? Есть ли какая-то статистика ?

И аналогичные вопросы по работе с MySQL не с  PhpMyAdmin, но со служебными скриптами, которыми пользуюсь только я сам (остальным пользователям доступ закрыт).
Например, скрипты администрирование форума PunBB. Имеет ли смысл запускать их на локальном компьютере, но с удаленным доступом к MySQL ?

4

Re: Работа с удаленным сервером MySQL с локального phpMyAdmin

valeryiv
Экспорт/Импорт лучше делать на удаленном сервере через директивы и указанные в них каталоги.
$cfg['UploadDir'] = './upload';
$cfg['SaveDir'] = './save';

Отдельный запросы можно и через локальный phpMyAdmin делать. По скорости все очень индивидуально - у кого-то быстрее, у кого-то медленнее. Многое зависит от загрузки сервера, его общего быстродействия и индивидуальных настроек.

5

Re: Работа с удаленным сервером MySQL с локального phpMyAdmin

Hanut сказал:

valeryiv
Экспорт/Импорт лучше делать на удаленном сервере через директивы и указанные в них каталоги.
$cfg['UploadDir'] = './upload';
$cfg['SaveDir'] = './save';

А в чем преимущества такого способа ?

Правильно ли я понимаю, что эти два каталога должны быть расположены на том же сервере, где развернут phpMyAdmin. И обмен файлами gzip между локальным компьютером и этим сервером выполняется по FTP ?

Сейчас хостинг-провайдер предоставляет  phpMyAdmin на собственном (не клиентском) сервере, поэтому к нему доступа по FTP нет (наверное,  нет и каталогов UploadDir  и SaveDir). Получается, что этим способом экспорт-импорта можно воспользоваться, если установить собственный phpMyAdmin на доступном по FTP сервере ( там же, где и сайт).

6

Re: Работа с удаленным сервером MySQL с локального phpMyAdmin

Провел такой эксперимент.
Есть три сервера: локальный и два удаленных. На каждом из удаленных серверов - по две базы данных. Оба удаленных сервера у одного хостера, но создавались в разное время и сконфигурированы по-разному.

Поставил на локальном сервере phpMyAdmin-2.11.9.4 и создал файл конфигурации на 5 серверов: один элемент массива $cfg['Servers'] для каждой БД, имена серверов - удаленные.
При этом обнаружилось, что из-за того, что у каждой БД - свой логин-пароль, [ 'only_db']   = array() использовать нельзя.
Аутентификация - ['auth_type'] = 'config'; 

Результаты такие:
- на локальном сервере - все нормально
- на удаленном сервере 1 - все ромально
- на удаленном сервере 2 - фокус не проходит (не коннектится).

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading

Вопрос: можно ли эту ситуацию как-то победить ?

7

Re: Работа с удаленным сервером MySQL с локального phpMyAdmin

valeryiv сказал:

Получается, что этим способом экспорт-импорта можно воспользоваться, если установить собственный phpMyAdmin на доступном по FTP сервере ( там же, где и сайт).

Именно.

valeryiv сказал:

При этом обнаружилось, что из-за того, что у каждой БД - свой логин-пароль, [ 'only_db']   = array() использовать нельзя.

Почему нельзя? В чем проблема проявляется?

valeryiv сказал:

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading

А если один этот сервер, то работает?

8

Re: Работа с удаленным сервером MySQL с локального phpMyAdmin

Почему нельзя? В чем проблема проявляется?

На сервере созданы две БД. Для каждой БД выслан свой логин-пароль.
Поэтому одновременно увидеть обе БД, подключившись к этому серверу, невозможно.
Даже если записать $cfg['Servers'][$i]['only_db']   = array('namedb1', 'namedb2')
то все равно видна только та БД, для которой указаны
$cfg['Servers'][$i]['user']  и $cfg['Servers'][$i]['password'] .

Поэтому фактически для такого случая в конфигурации массив серверов - это массив баз данных. Сервер один, но элементов массива $cfg['Servers'] должно быть два.
 

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading
А если один этот сервер, то работает?

Если один - тот же результат. Т.к. это не проблема phpMyAdmin, а проблема PHP-функции mysql_connect(). Видимо на сервере MySQL сконфигурирована так, что удаленный доступ невозможен. В других скриптах mysql_connect() при удаленном соединении выдает те же сообщения про апгрейд.

9

Re: Работа с удаленным сервером MySQL с локального phpMyAdmin

valeryiv
Создайте отдельную конфигурацию для каждой БД, к которой есть доступ, и переключайте, как сервера. Либо попросите объединить эти БД под одним пользователем, если это возможно.

Если MySQL сервер закрыт для внешних подключений, то надо устанавливать phpMyAdmin на него, собственно.