phpmyadmin синхронизировать - PullRequest
       1

phpmyadmin синхронизировать

0 голосов
/ 25 февраля 2011

У меня есть удаленный сервер в веб-отеле, который я хочу синхронизировать с локальным сервером.

Мой план состоял в том, чтобы сделать это либо с помощью отношения главный-подчиненный, но веб-хост работает как виртуальный сервер, поэтому вопрос первый: возможно ли установить мою часть сервера на главный сервер? (Хозяин не знал об этом много)

Моя другая, но менее удивительная идея - вручную синхронизировать через phpmyadmin на хосте или локальном сервере (они оба работают под управлением mysql / phpmyadmin, но я бы предпочел синхронизировать их с локального на хост)

Когда я пытаюсь выполнить синхронизацию с хоста или локального компьютера, я получаю следующую ошибку:

«Невозможно подключиться к цели / источнику»

Как мне обойти это? Я новичок в подключении к БД, поэтому мне нужно включить что-нибудь на локальном или удаленном компьютере?

1 Ответ

6 голосов
/ 08 июня 2011

У вас, кажется, есть пара проблем здесь,

ВРЕМЯ ВЫХОДА

Я бы начал здесь, поскольку у вас может быть проблема с разрешениями. Я бы рекомендовал сначала убедиться, что у вашего локального IP-адреса есть разрешение на подключение к вашей удаленной базе данных MySQL, и наоборот, в зависимости от настроек вы можете настроить это в phpMyAdmin, хостинге, таком как cPanel, или через доступ к оболочке. Я бы предложил настроить отдельного пользователя с надежным паролем для удаленного доступа. У вас должен быть статический IP-адрес в вашем локальном интернет-соединении, если у вас его нет, обратитесь к поставщику услуг Интернета и договоритесь о нем.

В phpMyAdmin, если у вас есть достаточный доступ, через вкладку «Права пользователя» и настройку «хоста» в разделе «Информация для входа». Я бы не рекомендовал установку «любой хост» по очевидным причинам безопасности.

В cPanel в разделе «базы данных» вы найдете «удаленный MySQL», где вы можете установить свой IP-адрес.

Наконец в SSH,

  1. откройте файл конфигурации mySQL с вашим любимым редактором, таким как VI или Nano, в Ubuntu он находится по адресу "/etc/mysql/my.conf",
  2. закомментируйте "bind-address = 127.0.0.1", чтобы оно выглядело как "# bind-address = 127.0.0.1",
  3. перезапустите mySQL с помощью "/etc/init.d/mysql restart",
  4. войти в mySQL с помощью «mysql -u root -p»,
  5. для нового пользователя: "CREATE USER 'MY_USERNAME' @ 'localhost', ИДЕНТИФИЦИРОВАННЫЙ 'MY_PASSWORD'"
  6. с последующим "ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА 'MY_DATABASE'. * TO 'MY_USERNAME'@'12.34.56.78' ИДЕНТИФИЦИРОВАНО 'MY_PASSWORD';" - обратите внимание, замените IP «12.34.56.78» на ваш фактический IP-адрес.
  7. Теперь у вас должно быть подтверждение по строкам запроса.
  8. Наконец выйдите из mysql с помощью команды "quit" и перезапустите с помощью "/etc/init.d/mysql restart"

ПРИМЕЧАНИЕ. Я бы порекомендовал настроить обе установки mySQL для удаленного доступа.

Я бы порекомендовал проверить это, запустив небольшой скрипт на вашем локальном компьютере, что-то вроде

<?php
$host = 'mysql_remoteip';
$user = 'mysql_username';
$pass = 'mysql_password';
$db = 'mysql_database';

$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("OOPS! I can not connect to the remote mySQL database, I was given the following error: ".mysql_error());
$sql = "SELECT column FROM table WHERE column='my_var'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
if(empty($row['column']) {
echo "WHOOPS! I could not get information from the mySQL, was there data for me to retrieve in the database?";
} else {
echo "The data I retrieved is:<br />"
echo $row['column'];
}
}
?>

ПРИМЕЧАНИЕ: у вас должны быть данные в базе данных для правильной работы скрипта, в результате без данных будет отображаться сообщение о том, что скрипт не может получить данные, это все равно будет установлено, если у вас теперь есть доступ к базе данных или нет, но не гарантирует, что он работает на 100%.

МАСТЕР ИЛИ РАБА

Да, это возможно, если у вас есть достаточный доступ

В phpMyAdmin:

  1. на вкладке "replication" вы найдете мастер, который предоставит вам код для установки этого в файле конфигурации mySQL (в Ubuntu он находится по адресу "/etc/mysql/my.conf"),
  2. нажмите на ссылку для настройки главного сервера
  3. введите информацию в форму, скопируйте код
  4. перейдите в файл конфигурации (расположение выше) и добавьте код, предоставленный phpMyAdmin
  5. как только вы обновите файл конфигурации, перезапустите mySQL и нажмите кнопку «Перейти» в phpMyAdmin, это подтвердит изменения
  6. Теперь снова на вкладке «Репликация» щелкните ссылку, чтобы настроить подчиненный сервер
  7. убедитесь, что у вас есть уникальный идентификатор сервера в вашем файле конфигурации, если нет, добавьте строку, предоставленную phpMyAdmin, в раздел [mysqld] файла
  8. Заполните необходимую информацию и нажмите Go

Это должно настроить вашу репликацию.

СИНХРОНИЗАЦИЯ

Если все остальное не удалось, то в phpMyAdmin перейдите на вкладку «Синхронизировать», введите информацию, и все, что вам нужно, вам просто нужно подтвердить синхронизацию на следующей странице, и через 2 секунды все готово, это то, что легко.

Для производственных серверов у меня лично есть настройка репликации master / slave, но для разработки я синхронизируюсь, когда мне нужны «живые» данные для репликации ошибки или проблемы, потому что мне нужно синхронизировать только один раз каждые 6-12 месяцев. , Если мне нужны текущие данные локально, я бы настроил репликацию master / slave

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...