У вас, кажется, есть пара проблем здесь,
ВРЕМЯ ВЫХОДА
Я бы начал здесь, поскольку у вас может быть проблема с разрешениями. Я бы рекомендовал сначала убедиться, что у вашего локального IP-адреса есть разрешение на подключение к вашей удаленной базе данных MySQL, и наоборот, в зависимости от настроек вы можете настроить это в phpMyAdmin, хостинге, таком как cPanel, или через доступ к оболочке. Я бы предложил настроить отдельного пользователя с надежным паролем для удаленного доступа.
У вас должен быть статический IP-адрес в вашем локальном интернет-соединении, если у вас его нет, обратитесь к поставщику услуг Интернета и договоритесь о нем.
В phpMyAdmin, если у вас есть достаточный доступ, через вкладку «Права пользователя» и настройку «хоста» в разделе «Информация для входа». Я бы не рекомендовал установку «любой хост» по очевидным причинам безопасности.
В cPanel в разделе «базы данных» вы найдете «удаленный MySQL», где вы можете установить свой IP-адрес.
Наконец в SSH,
- откройте файл конфигурации mySQL с вашим любимым редактором, таким как VI или Nano, в Ubuntu он находится по адресу "/etc/mysql/my.conf",
- закомментируйте "bind-address = 127.0.0.1", чтобы оно выглядело как "# bind-address = 127.0.0.1",
- перезапустите mySQL с помощью "/etc/init.d/mysql restart",
- войти в mySQL с помощью «mysql -u root -p»,
- для нового пользователя: "CREATE USER 'MY_USERNAME' @ 'localhost', ИДЕНТИФИЦИРОВАННЫЙ 'MY_PASSWORD'"
- с последующим "ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА 'MY_DATABASE'. * TO 'MY_USERNAME'@'12.34.56.78' ИДЕНТИФИЦИРОВАНО 'MY_PASSWORD';" - обратите внимание, замените IP «12.34.56.78» на ваш фактический IP-адрес.
- Теперь у вас должно быть подтверждение по строкам запроса.
- Наконец выйдите из 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:
- на вкладке "replication" вы найдете мастер, который предоставит вам код для установки этого в файле конфигурации mySQL (в Ubuntu он находится по адресу "/etc/mysql/my.conf"),
- нажмите на ссылку для настройки главного сервера
- введите информацию в форму, скопируйте код
- перейдите в файл конфигурации (расположение выше) и добавьте код, предоставленный phpMyAdmin
- как только вы обновите файл конфигурации, перезапустите mySQL и нажмите кнопку «Перейти» в phpMyAdmin, это подтвердит изменения
- Теперь снова на вкладке «Репликация» щелкните ссылку, чтобы настроить подчиненный сервер
- убедитесь, что у вас есть уникальный идентификатор сервера в вашем файле конфигурации, если нет, добавьте строку, предоставленную phpMyAdmin, в раздел [mysqld] файла
- Заполните необходимую информацию и нажмите Go
Это должно настроить вашу репликацию.
СИНХРОНИЗАЦИЯ
Если все остальное не удалось, то в phpMyAdmin перейдите на вкладку «Синхронизировать», введите информацию, и все, что вам нужно, вам просто нужно подтвердить синхронизацию на следующей странице, и через 2 секунды все готово, это то, что легко.
Для производственных серверов у меня лично есть настройка репликации master / slave, но для разработки я синхронизируюсь, когда мне нужны «живые» данные для репликации ошибки или проблемы, потому что мне нужно синхронизировать только один раз каждые 6-12 месяцев. , Если мне нужны текущие данные локально, я бы настроил репликацию master / slave