|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Доброе время суток всем. Очень нужна помощь и совет! Сил больше нет. Уже неделю взрывают моск куча вопросов, ответы на которые яндекс не находит. Я пишу макросы на VBA, но на очень дилетантском уровне. Потому, все дается очень тяжело и медленно. По порядку. Есть интернет магазин (ИМ) на OpenCart’е, использующий базу MySql. Есть большие таблицы Excel с десятками тысяч товаров. Синхронизацию «Excel <=> 1С» я уже сделал. Теперь хочу сделать полную синхронизацию «Excel <=> ИМ» (новые товары, апдейт имеющихся товаров по остаткам и ценам, новые категории, атрибуты и т.п.) С самого начала работы над ИМ, развернул «песочницу» на Денвере и все шло хорошо и быстро. Добавить или обновить ~8 тыс. товаров можно было в рамках 1 мин. Когда выложил ИМ на сервер, лафа закончилась. Запись новых товаров и апдейт старых стали до ужаса медленными! На запись 50 новых товаров уходит 1,5-2 минуты! Подключение стало нестабильным и нужно грузить именно по 50 шт… Пока приостановил выгрузку 15 тыс. товаров. Подключение и все операции с SQL базой делаю из VBA через ADODB.Connection: Код: vbnet 1. 2.
На сегодня рабочая, но очень медленная схема добавления/апдейта товара в ИМ настроена напрямую: подключаюсь к удаленной MySql базе и записываю/обновляю в удаленных таблицах все данные по товарам. Пример: Код: vbnet 1.
Возможна ли такая схема, которая подразумевает заполнение (добавление новых строк или апдейт старых) в локальных SQL-таблицах локальной базы MySql, а потом «выгрузку» этих таблиц в удаленную базу ИМ, на сервере? Можно ли все изменения производить в локальной “Мастер-базе” и постоянно выгружать определенные ее таблицы на сервер, в такую же базу? Что для этого нужно? Какие команды использовать, чтобы реализовать это из-под «ADODB.Connection»? Идеальная схема, какая крутится в моем дилетантском воображении: 1) Устанавливаю MySql у себя на Win7 и создаю локальную базу ИМ (LocalBase), по образу и подобию удаленной (RemoteBase). 2) Вношу много изменений в таблицы локальной базы… 3) Делаю “замену” таблиц. I. Обновление таблиц посредством Sql-запросов Целый день убил на поиски возможности просто скопировать табличку из Sql-базы одного сервера на другой. Так и не разобрался, как прикрутить методы “Linking The SQL Servers” или “parallel processing” к моим “ADODB.Connection” запросам. I.1 Подключаюсь к разным базам и инициирую рекордсеты: Код: vbnet 1. 2. 3. 4.
А потом хочу сделать что-то типа Remote_Recordset = Local_Recordset Ну или же как-то так: Код: vbnet 1. 2.
Или как-то так: Код: vbnet 1. 2.
Но, ничего из этого не работает, т.к. после “FROM” нужен объект “таблица”. Неужели, чтобы скопировать табличку с сервера на сервер, единственный вариант в цикле переписывать все строки и поля одного Рекордсета в другой? Если да, дайте, пожалуйста, ссылку на рабочий код такого извращенства… II. Обновление таблиц посредством выгрузки/загрузки дампов Если описанное в п. I не работает, возможно, поможет дамп нужных локальных таблиц с последующей их “загрузкой” в серверную базу: II.1 Проверил команду “SELECT * INTO OUTFILE” на удаленном сервере. Не заработала (‘Object required’). Надеюсь, заработает на локальном такая строка: Код: vbnet 1.
Полагаю, таким образом дамп-файл (*.sql) не сделать…? II.2 Нашел такой вот консольный вариант создания дампа локальной базы посредством mysqldump (надеюсь, это сработает на Денвере): C:\Server\bin\mysql-5.7\bin\mysqldump.exe -c -u{user} -p{pass} LocalBaseTable_product > C:\databasename.tablename.sql II.3 Допустим, я выгружу таблицу в файл и заброшу этот файл дампа или *.txt в {какую-то папку} на сервер, а дальше… ума не приложу, как мне, используя “ADODB.Connection” из VBA, загрузить дамп в удаленную базу. К примеру, будет ли работать такое решение: Код: vbnet 1.
Думаю, файл “LocalBaseTable_product.sql” будет разыскиваться в каких-то установочных папках MySql, к которым у меня нет доступа на хостинге… II.4 Загрузка таблиц через “LOAD DATA” (из файла) На dev.mysql.com написано много, но нифига мне, балбесу, не понятно, как это будет работать в моем случае. Нет ни одного примера загрузки из дампа (*.sql), все только из *.txt. И, насколько понял из этой статьи, у меня на хостинге должен быть доступ к установочной папке MySql (/var/lib/mysql/basename/). Скажите, есть ли у меня шансы в моем случае загрузить таблицы в свою удаленную базу посредством “LOAD DATA”? II.5 Загрузка дампа средствами SQL Как мне из VBA запустить серверную команду: “mysql -uLOGIN -PPORT -hHOST -pPASS DBNAME < Table_product.sql”? С таким я вообще не сталкивался. Подскажите, какая схема приемлема в моем случае? Буду очень признателен за советы, рекомендации, программный код и ссылки на умные ресурсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2019, 14:44 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandrкакая схема приемлема в моем случае? Приемлемых схем несколько. 1. Установка локальной копии и настройка мастер-мастер репликации. В описанном случае (нестабильный канал) нерациональна. 2. Загрузка данных текстовым дампом (LOAD DATA INFILE). Ещё раз читайте справку - но ещё и старайтесь понять написанное там. Ибо tinkandrНет ни одного примера загрузки из дампа (*.sql), все только из *.txt.удивляет - LOAD DATA грузит именно ДАННЫЕ, передаваемый для него файл содержит только данные в формате CSV (plain text), причём в известном формате, тогда как SQL-дамп - это дамп (структура+данные) в форме SQL-запросов. Наилучшее в описанном случае решение, я думаю. Особенно если операция импорта загруженного на сервер файла выполняется хранимой процедурой. Или вообще из встроенного планировщика - тогда бросил выгрузку, и она самостоятельно загрузится, даже думать не нужно, и программное взаимодействие с MySQL не требуется. 3. Пакетная загрузка данных. INSERT .. VALUES позволяет записывать сразу несколько записей, т.е. не tinkandr Код: vbnet 1.
а Код: vbnet 1.
Оптимальное количество записей в блоке следует подбирать экспериментально, учитывая также стабильность канала (очень большой чанк имеет повышенный шанс оборваться) и максимально допустимый размер пакета данных. 4. Загрузка данных во временную таблицу и последующее копирование в основную. Загрузка выполняется так же, как и в (3), но, поскольку нет интерференции с рабочим процессом, и опять же таблицу можно не индексировать, происходит быстро. После попадания данных на сервер копирование выполняется одним запросом. Если выполняется обновление, для ускорения после передачи данных на сервер до обновления можно создать подходящие индексы. Опасность - при обрыве соединения временная таблица умирает вся, процесс нужно начинать сначала. 5. Загрузка данных в таблицу и последующее копирование в основную. То же, что и (4), но используется статическая таблица. Из плюсов - при обрыве можно продолжить с места обрыва, из минусов - необходимо исключить пересечение по имени таблицы. Возможны и другие варианты организации процесса. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2019, 15:06 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Круто) не ожидал такой быстрый и развернутый ответ!! Спасибо большое, Akina! Только, Вас не затруднит дописать к ответу еще немножко кодов, которые я смогу использовать в строках типа Код: vbnet 1.
Иначе мне очень сложно Вас понять. Программер из меня совсем никудышний (( Касательно LOAD DATA, если Вы имеете в виду загрузку файла в таблицу при помощи Код: vbnet 1.
Где в этом случае должен лежать мой файл ‘product.csv’ ? я писал, что "у меня на хостинге нет доступа к установочной папке MySql (/var/lib/mysql/basename/)" Касательно "пакетной загрузки" - это ужасный и самый последний вариант. Если правильно понял, это загрузка десятков тысяч элементов одной таблицы в другую в цикле... Ваши пункты 4. и 5. - это именно то, что мне нужно!! Это именно то, что я уже который день ищу и не могу найти! Я не могу создать никакую таблицу на удаленном сервере из рекордсета или на основании локальной таблицы! Я был бы Вам очень признателен за коротенький код, который я смогу разместить в своем формате и протестировать п. 4. и п. 5: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2019, 15:52 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Не понял насчет "не могу создать таблицу"... вообще нет таких прав? Или не знаете как? Остальное - когда до компа доберусь, со смартфона неудобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2019, 22:38 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Akina, благодарю, что не оставили меня с моей проблемой... ) Нет, таблицы я умею создавать и права на это имеются ) Ключевая фраза здесь “ на основании ”. Я не могу создать таблицу в удаленной базе на основании таблицы из локальной базы! Если одной фразой озвучить мою беду, получится так: «Нужно передать локальную таблицу из локальной базы в удаленную базу». Есть 2 одинаковые базы с одинаковыми таблицами. В локальную базу вносятся изменения и эти изменения должны передаваться в удаленную. Есть ли более цивилизованный способ синхронизации таблиц 2 разных баз (на разных серверах), кроме как перебор в цикле десятков тысяч полей таблиц и пересылка этих блоков? Входящие условие: доступа к установочным папкам MySql на хостинге у меня нет ("LOAD DATA" наверное не сработает) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2019, 19:46 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Еще, напомню, что я работаю через ODBC-подключение "DRIVER={MySQL ODBC 8.0 ANSI Driver}". Потому, в моем случае, я смогу подключиться к обоим базам как-то так: LocalBase_Connection.Open ‘подключаюсь к локальной базе… RemoteBase_Connection.Open ‘подключаюсь к удаленной базе… и дальше, все действия с синхронизацией таблиц смогу делать только посредством команды "Execute" RemoteBase_Connection.Execute "КОМАНДЫ" Я не силен в SQL, но похоже, не существует конструкции типа RemoteBase_Connection.Execute " ПОДКЛЮЧИТЬСЯ/ВСТАВИТЬ/ОБНОВИТЬ Remote_Table FROM Local_Recordset " Знатоки SQL, отзовитесь! Неужели мой вопрос очень сложный или нестандартный..? Нужно элементарно перекинуть табличку с одного сервера на другой, используя ODBC-подключение к этим серверам! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2019, 13:04 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandr, как вариант, у себя локально выполняете консольную команду mysqldump для конкретной таблицы а потом всё содержимое отправляете как обычный пакетный запрос на уд. сервер... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2019, 17:47 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Дормедонт Евлампиевич, ну не издевайтесь Вы надо мной!! )) Ну, объясните же мне дуралею на пальцах, что это такое "обычный пакетный запрос"... У меня не работает команда Код: vbnet 1.
Система выдает ошибку ) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2019, 18:16 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandr, Код: sql 1.
однако, при данном подходе можно упереться в макс. размер пакета запроса - max_allowed_packed (в настройках mysql). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2019, 20:26 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandrГде в этом случае должен лежать мой файл ‘product.csv’ ? я писал, что "у меня на хостинге нет доступа к установочной папке MySql (/var/lib/mysql/basename/)" У MySQL есть такая настройка, как secure_file_priv . Если она непуста, в ней содержится имя каталога, в который следует помещать файл для загрузки - из другого каталога файл не будет прочитан (Error 2 - file not found). Если значение переменной пусто - файл может располагаться в любом локальном каталоге на любом локальном томе. В любом случае - учётная запись обязана иметь право FILE. В любом случае указывается полный путь к файлу. tinkandrтаблицы я умею создавать и права на это имеются ) Ключевая фраза здесь “ на основании ”. Я не могу создать таблицу в удаленной базе на основании таблицы из локальной базы! Во-первых, как я понял, таблица-приёмник имеет абсолютно ту же структуру. Тогда нет ничего проще, как Код: sql 1.
Создаётся таблица-копия, не содержащая данных и имеющая новое имя. Не копируются также триггеры. Всё остальное - индексы, ограничения, даже комментарии,- копируются в полном объёме. tinkandrКасательно "пакетной загрузки" - это ужасный и самый последний вариант. Если правильно понял, это загрузка десятков тысяч элементов одной таблицы в другую в цикле... Видимо, неправильно понял... это в цикле на клиенте создаётся длинный запрос, содержащий команду на создание сразу многих записей (обычно речь идёт о сотнях, но бывают и десятки тысяч, и сотни тысяч), и потом этот ОДИН запрос отсылается на сервер. Затем, если надо, готовится второй такой запрос, третий... фактически на сервер пересылаются все данных для вставки (впрочем, это по-любому делать), но снижаются накладные расходы - как за счёт того, что сома команда на вставку одна на кучу записей, так и за счёт того, что сервер один раз на кучу записей выполняет подготовку плана выполнения запроса. Ужасного в этом способе уж точно ничего нет - способы 4 и 5, которые названы желательными, используют именно такую загрузку как один из этапов выполнения. tinkandrпохоже, не существует конструкции типа RemoteBase_Connection.Execute " ПОДКЛЮЧИТЬСЯ/ВСТАВИТЬ/ОБНОВИТЬ Remote_Table FROM Local_Recordset " Да, в таком варианте оно в принципе не существует. Ибо означает намерение переносить данные с одного сервера на второй через память клиента. Однако существует FEDERATED Engine, которая позволяет одному серверу подключиться непосредственно к другому серверу. В этом случае он воспринимает таблицы удалённого сервера как свои собственные, и, работая формально с одним сервером, мы фактически работаем с данными двух серверов. tinkandrЯ был бы Вам очень признателен за коротенький код, который я смогу разместить в своем формате и протестировать п. 4. и п. 5: Код: vbnet 1.
Это будет нечто типа (без обработки ошибок и пр.): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
[/quote] ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2019, 07:53 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Akina, AkinaУ MySQL есть такая настройка, как secure_file_priv... Спросил об "secure_file_priv" у поддержки хостинга... жду ответ AkinaВо-первых, как я понял, таблица-приёмник имеет абсолютно ту же структуру. Тогда нет ничего проще, как CREATE [TEMPORARY] TABLE new_table_name AS existed_table_name; Создаётся таблица-копия, не содержащая данных и имеющая новое имя. Не копируются также триггеры. Всё остальное - индексы, ограничения, даже комментарии,- копируются в полном объёме Это простое решение предполагает создание новой таблицы (new_table_name) на одном и том же сервере, на котором находится таблица existed_table_name. Для разных серверов, если правильно понял, в этом случае необходимо решение с "FEDERATED Engine". Решение с "FEDERATED Engine" немного запутанное для меня. Стараюсь разобраться, настроить и протестировать. Большое спасибо за код выгрузки. Если не разберусь с "FEDERATED Engine", буду писать обработку, разбивающую таблицу на запросы по 1000 строк ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2019, 13:38 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandrСпросил об "secure_file_priv" у поддержки хостинга... жду ответ А самому сделать SELECT @@secure_file_priv - сложно, да? tinkandrЭто простое решение предполагает создание новой таблицы (new_table_name) на одном и том же сервере, на котором находится таблица existed_table_name. А куда ты денешься, если погонишь данные через себя? tinkandrРешение с "FEDERATED Engine" немного запутанное для меня. Всё то же самое, только с одним сервером будет работать второй сервер, а не твой локальный клиент. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2019, 14:54 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Akina, AkinaА самому сделать SELECT @@secure_file_priv - сложно, да? Да, наверное, сложновато... Я же говорил, что я балбес... Просто я совсем не понимаю, что это. Мне нужно пару дней, чтобы разобраться в этом, полазить по форумам и, если посчастливится найти похожую на мою ситуацию... Просто, я думал, что настройку "secure_file_priv" нужно делать на хостинге, а прав у меня там нет никаких. Поддержка хостинга спрашивают, устроит ли меня импорт базы "по SSH командой mysqldump"?... А я опять не понимаю, что это такое. Если я правильно понимаю, я не могу запускать никаких консольных команд на стороне сервера. Вобщем, буду разбираться с этим SSH-решением ( Потому я и просил Вас немножко подробнее описывать решения, которые можно использовать в моем случае... В идеале, хотя бы с небольшим программным кодом, который я смог бы втиснуть в свою конструкцию Connection.Execute "скопировать несчасную локальную табличку на удаленный сервер" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2019, 17:52 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandrПоддержка хостинга спрашивают, устроит ли меня импорт базы "по SSH командой mysqldump"?Ну в принципе устроит... готовите файл с запросами на пополнение-обновление, грузите на сервер, скармливаете mysqldump-у. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2019, 21:05 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2019, 22:04 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Akina, Всю ночь тестировал со службой поддержки команду "SOURCE dump.sql". Пойду посплю пару часов... Буду признателен за какую-то идею или подсказку по причине ошибки ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 07:31 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandrВсю ночь тестировал со службой поддержки команду "SOURCE dump.sql".И? tinkandrподсказку по причине ошибкиНу как минимум неплохо бы показать, что делалось, и какое сообщение об ошибке было получено. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 08:40 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Akina, А у Вас разве не работает ссылка из моего предыдущего поста? Вот, собрал в пдф и выложил у себя: http://bnfit.ru/admin/dumps/file.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 10:14 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandr, установи dbForge, и спокойно сделай копию себе в локальную базу, к удалённоq подключается через SSH/ можно скопировать как структуру, так и данные. можно и сравнивать и структуру и данные ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 10:35 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
вадя, Спасибо за совет. Буду иметь в виду, что так тоже можно. Но, все же, задача ведь до смешного проста: "перекинуть табличку с локального сервера на удаленный". Здесь ведь вопрос в нескольких строках программного кода. Чем устанавливать дополнительное ПО, лучше включить эти пару строк в свой проект... Только, я уже начинаю терять веру, что у меня получится запустить эти пару строк ( ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 11:12 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandrА у Вас разве не работает ссылка из моего предыдущего поста?Та, которая требует логин и пароль? работает, как не работать... только вот кто бы ещё логин с паролем сказал tinkandrВот, собрал в пдф и выложил у себяУвы, всё, чем Вы занимались - одна сплошная ошибка. SOURCE - это команда CLI клиента mysql.exe, и MySQL-сервер о её существовании даже не подозревает. Через Conn.Execute по этой причине она и не может быть выполнена. Указанный Вам путь через SSH - другое дело. Вы подключаетесь именно к CLI-клиенту. Вот тут команда SOURCE сработает. Т.е. подключившись к удалённому серверу, Вы указываете локальный файл для загрузки, он передаётся удалённому mysql.exe и им выполняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 11:17 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
AkinaТа, которая требует логин и пароль? работает, как не работать... только вот кто бы ещё логин с паролем сказал Блин... ну я же предупреждал, что я балбес )) AkinaУвы, всё, чем Вы занимались - одна сплошная ошибка. SOURCE - это команда CLI клиента mysql.exe, и MySQL-сервер о её существовании даже не подозревает Вот по тому то я и просил отправить мне немного программного кода... Вижу 2 варианта решения моей проблемы: I) SSH Почитал здесь , что использование запросов через SSH подразумевает использование утилиты PLINK, а также подключение к своему проекту библиотек (VBMySQLDirect.dll, libmysql.dll). Конкретных примеров нет и мне нужен месяц, чтобы с этим всем разобраться. II) SQL-запросы "SELECT * INTO OUTFILE" и "LOAD DATA INFILE" 1) Запускаю для локального сервера /УДАЧНО!/: Код: vbnet 1.
2) Запускаю для удаленного сервера /УДАЧНО!/: Код: vbnet 1.
3) Запускаю для удаленного сервера /ОШИБКА!/: Код: vbnet 1.
'Ошибка: The used command is not allowed with this MySql version Akina, помогите мне, пожалуйста с этой чертовой последней строкой! Как мне ее изменить, чтобы она заработала? Для локальной базы следующая строка ведь нормально работает! Код: vbnet 1.
Что-то в путях к файлу наверное не то... Такая конструкция с полным путём также выдает ошибку Код: vbnet 1.
выдает: "Access denied for user 'tinkan_bnfit'" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 16:09 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandr, Есть небольшой проект (в начальной стадии, так, набросок), тоже с обновлением данных на удаленном сервере. Я реализовал следующим образом: 1. Подготавливаются файлы для загрузки в MySQL командой "LOAD DATA". 2. Удаляю все данные из таблиц, а потом в них загружаю новые. Код на делфи для загрузки на удаленный сервер: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
где TableName = имя файла без всяких путей, он лежит локально в одной папке с exe. На сервер ничего не загружаю, ведь доступ есть напрямую к серверу. qMySQL = TUniQuery. По замерам, скорость заливки данных в этом случае зависит больше от скорости интернета. У меня самая жирная таблица на 33 тыс. записей весит в txt 4,5 мб и заливается около 7 сек. P.S. Мне нужно просто обновить все данные в таблицах, внешних ключей и т.п. влияющие на целость нет и не нужно, и да, пришлось немного поиграться с форматом файла. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 19:43 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandr3) Запускаю для удаленного сервера /ОШИБКА!/: Код: vbnet 1.
'Ошибка: The used command is not allowed with this MySql version Правильно. Во-первых, УДАЛЁННЫЙ сервер ничего не знает о Вашем ЛОКАЛЬНОМ диске Z:. Во-вторых, есть подозрение, что учётная запись на MySQL-сервере (не его ОС!), с которой Вы подключаетесь, не имеет права FILE. tinkandrТакая конструкция с полным путём также выдает ошибку Код: vbnet 1.
выдает: "Access denied for user 'tinkan_bnfit'" Что это за учётная запись такая - tinkan_bnfit? это же та, от имени которой работает сервис/демон MySQL? ну так у неё, вероятно, нет необходимых прав в этом каталоге... либо (что намного вероятнее) secure_file_priv установлена, но указывает НЕ на этот каталог. Вы значение этой переменной посмотрели? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2019, 07:19 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Akina, Близнец, Спасибо Вам огромное за советы и потраченное на меня время. Вторая бессонная ночь дала свои плоды). У меня наконец-то получилось синхронизировать тестовые таблицы на разных серверах. Немного позжее опишу свои мучения и выложу результаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2019, 09:03 |
|
|
start [/forum/topic.php?fid=47&fpage=32&tid=1828993]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 192ms |
0 / 0 |