Это команда mysqldbcopy, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
mysqldbcopy - Копирование объектов базы данных между серверами
СИНТАКСИС
mysqldbcopy [кредита] имя_базы_данных [: new_db_name]
ОПИСАНИЕ
Эта утилита копирует базу данных на исходном сервере в базу данных на конечном сервере.
Если исходный и целевой серверы разные, имена базы данных могут быть одинаковыми или
другой. Если исходный и целевой серверы совпадают, имена базы данных должны быть
другой.
Утилита принимает одну или несколько пар баз данных в командной строке. Чтобы назвать базу данных
пара, используйте имя_базы_данных:новое_имя_базы_данных синтаксис для указания имен источника и назначения
явно. Если имена исходной и целевой базы данных совпадают, имя_базы_данных может быть использован
как сокращение для имя_базы_данных:имя_базы_данных.
По умолчанию операция копирует все объекты (таблицы, представления, триггеры, события, процедуры,
функции и гранты на уровне базы данных) и данные на целевой сервер. Есть
параметры, позволяющие отключить копирование любого или всех объектов, а также не копировать данные.
Чтобы исключить определенные объекты по имени, используйте --исключать вариант с именем в db. * obj *
формат, или вы можете указать шаблон поиска. Например, --exclude = db1.trig1 исключает
одиночный спусковой крючок и --exclude = trig_ исключает все объекты из всех баз данных, имеющих имя
который начинается с триггера и имеет следующий символ.
По умолчанию утилита создает каждую таблицу на целевом сервере, используя один и тот же
движок хранения как исходная таблица. Чтобы переопределить это и указать механизм хранения для
использовать для всех таблиц, созданных на целевом сервере, используйте --новый-хранилище-движок опцию.
Если целевой сервер поддерживает новый механизм, все таблицы используют этот механизм.
Чтобы указать механизм хранения, который будет использоваться для таблиц, для которых целевой сервер не
поддерживать исходный механизм хранения на исходном сервере, используйте - механизм хранения по умолчанию
опцию.
The --новый-хранилище-движок вариант имеет приоритет перед - механизм хранения по умолчанию если оба
данный.
Если же линия индикатора --новый-хранилище-движок or - механизм хранения по умолчанию предоставляется вариант, и
целевой сервер не поддерживает указанный механизм хранения, выдается предупреждение и
Вместо этого используется настройка механизма хранения по умолчанию для сервера.
По умолчанию операция использует согласованный моментальный снимок для чтения исходных баз данных. К
измените режим блокировки, используйте - блокировка вариант со значением типа блокировки. Используйте значение
of без замков чтобы полностью отключить блокировку или запереть все использовать только настольные замки. В
значение по умолчанию снимок. Кроме того, утилита использует блокировки WRITE, чтобы заблокировать
таблицы назначения во время копирования.
Вы можете включить операторы репликации для копирования данных между ведущим и ведомым устройством или
между рабами. В --rpl опция позволяет вам выбрать из следующей репликации
заявления для включения в экспорт.
· мастер
Включите ИЗМЕНЕНИЕ MASTER оператор для запуска нового ведомого устройства с текущим сервером
действуя как хозяин. При этом выполняются соответствующие операторы STOP и START ведомого устройства.
The STOP SLAVE оператор выполняется в начале копии и ИЗМЕНЕНИЕ MASTER
а затем Начать игру SLAVE операторы выполняются после копии.
· раб
Включите ИЗМЕНЕНИЕ MASTER оператор для запуска нового ведомого устройства с использованием текущего сервера
основная информация. При этом выполняются соответствующие операторы STOP и START ведомого устройства. В
Оператор STOP SLAVE выполняется в начале копии, а ИЗМЕНЕНИЕ MASTER
а затем Начать игру SLAVE заявления следуют за копией.
Чтобы включить пользователя репликации в ИЗМЕНЕНИЕ MASTER заявление, используйте --rpl-пользователь вариант
указать пользователя и пароль. Если этот параметр не указан, утилита пытается
идентифицировать пользователя репликации. В случае, если есть несколько кандидатов или пользователь
требуется пароль, утилита прерывается с ошибкой.
Если вы попытаетесь скопировать базы данных на сервер с включенными GTID (GTID_MODE = ON),
предупреждение будет сгенерировано, если копия не включает все базы данных. Это потому, что
Сгенерированные операторы GTID включают GTID для всех баз данных, а не только для этих баз данных.
в экспорте.
Утилита также выдаст предупреждение, если вы скопируете базы данных на сервер с поддержкой GTID.
но используйте - пропустить-gtid опцию.
Чтобы максимально использовать GTID, вы должны скопировать все базы данных на сервере с
--все опцию.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
mysqldbcopy принимает следующие параметры командной строки:
· --помощь
Отобразите справочное сообщение и выйдите.
· --Default-storage-engine =
Механизм, используемый для таблиц, если целевой сервер не поддерживает исходный
механизм хранения на исходном сервере.
· --Destination =
Информация о подключении к целевому серверу в формате:
<пользователь> [:ПАРОЛЬ>] @кашель> [:порт>] [:гнездо>] илилогин-путь> [:порт>] [:гнездо>]
(куда не является обязательным и либо или должно быть предоставлено).
· --Exclude = , -Икс
Исключите один или несколько объектов из операции, используя определенное имя, например
db1.t1 или шаблон поиска. Используйте эту опцию несколько раз, чтобы указать несколько
исключения. По умолчанию в шаблонах используется LIKE соответствие. С --regexp вариант, выкройки
используют REGEXP соответствия.
Этот вариант не распространяется на гранты.
· --сила
Отбросьте каждую базу данных для копирования, если она существует, прежде чем копировать что-либо в нее. Без
Эта опция вызывает ошибку, если вы пытаетесь скопировать объекты в существующую базу данных.
· --Locking =
Выберите тип блокировки для операции. Допустимые значения блокировки: без замков (не использовать
любые замки стола), запереть все (используйте блокировки таблиц, но без транзакций и непротиворечивых
читать и снимок (последовательное чтение с использованием одной транзакции). По умолчанию
снимок.
· --New-storage-engine =
Механизм, используемый для всех таблиц, созданных на конечном сервере.
· --Quiet, -q
Отключите все сообщения для тихого выполнения.
· --Regexp, --basic-regexp, -G
Выполните сопоставление с образцом, используя REGEXP оператор. По умолчанию используется LIKE для
соответствия.
· --Rpl = , --репликация =
Включите информацию о репликации. Допустимые значения: мастер (включая ИЗМЕНЕНИЕ
MASTER оператор, использующий исходный сервер в качестве главного), раб (включая ИЗМЕНЕНИЕ
MASTER оператор с использованием основной информации целевого сервера), и и (Включает в себя
мастер и раб варианты, если применимо).
· --Rpl-user =
Пользователь и пароль для требования пользователя репликации в форме:
<пользователь> [:password>] илилогин-путь>. Например, rpl: passwd По умолчанию = Нет.
· L --skip-gtid
Пропустить создание и выполнение операторов GTID во время операции копирования.
· --все
Скопируйте все базы данных на сервере.
· --Skip =
Укажите объекты, которые необходимо пропустить в операции, в виде списка, разделенного запятыми (без пробелов).
Допустимые значения: CREATE_DB, ДАННЫЕ, СОБЫТИЯ, ФУНКЦИИ, ГРАНТЫ, ПРОЦЕДУРЫ, ТАБЛИЦЫ,
ТРИГГЕРЫ и ПРОСМОТРЫ.
· --Source =
Информация о подключении к целевому серверу в формате:
<пользователь> [:ПАРОЛЬ>] @кашель> [:порт>] [:гнездо>] илилогин-путь> [::порт>] [::гнездо>]
(куда не является обязательным и либо или должно быть предоставлено).
· --потоки
Используйте несколько потоков для межсерверного копирования. По умолчанию 1.
· --Verbose, -v
Укажите, сколько информации нужно отображать. Используйте эту опцию несколько раз, чтобы увеличить
количество информации. Например, -v = подробный, -вв = более подробный, -ввв =
отлаживать.
· --Версия
Вывести информацию о версии и выйти.
ПРИМЕЧАНИЯ
Вы должны указать параметры подключения (пользователь, хост, пароль и т. Д.) Для учетной записи.
который имеет соответствующие привилегии для доступа ко всем объектам в операции.
Чтобы скопировать все объекты из источника, пользователь должен иметь следующие права: ВЫБОР и ОТКРЫТЬ
СМОТРЕТЬ для базы данных и ВЫБОР для базы данных mysql.
Чтобы скопировать все объекты в место назначения, пользователь должен иметь следующие права: СОЗДАТЬ для
база данных, СУПЕР (когда включено двоичное ведение журнала) для процедур и функций, и ГРАНТ
ВАРИАНТ копировать гранты.
Фактические требуемые привилегии могут отличаться от установки к установке в зависимости от
наличие привилегий безопасности и наличие в базе данных определенных объектов, таких как
представления или события, а также включено ли двоичное ведение журнала.
The --новый-хранилище-движок и - механизм хранения по умолчанию параметры применяются ко всем направлениям
столы в эксплуатации.
Некоторые комбинации опций могут привести к ошибкам во время работы. Например,
удаление таблиц, но не представлений, может привести к ошибке при копировании представления.
The --rpl опция недопустима для копирования баз данных на одном сервере. Ошибка будет
генерируется.
При копировании данных и включении команд GTID вы можете столкнуться с ошибкой, похожей на
«GTID_PURGED может быть установлен, только если GTID_EXECUTED пуст». Это происходит потому, что
целевой сервер не находится в состоянии чистой репликации. Чтобы решить эту проблему, вы можете
выполните команду «RESET MASTER» на адресате перед выполнением копирования.
Клонирование баз данных, содержащих ограничения внешнего ключа, не меняет ограничения в
клонированная таблица. Например, если таблица db1.t1 имеет ограничение внешнего ключа для таблицы
db1.t2, когда db1 клонируется в db2, таблица db2.t1 будет иметь ограничение внешнего ключа на
db1.t2.
Путь к клиентским инструментам MySQL должен быть включен в переменную среды PATH в
чтобы использовать механизм аутентификации с путями входа. Это позволит утилите
используйте инструменты my_print_defaults, которые необходимы для чтения значений пути входа из
файл конфигурации входа в систему (.mylogin.cnf).
Если какой-либо идентификатор базы данных, указанный в качестве аргумента, содержит специальные символы или является
зарезервированное слово, то оно должно быть соответствующим образом заключено в кавычки с обратными кавычками (`). В свою очередь, имена
кавычки с обратными кавычками также должны быть заключены в одинарные или двойные кавычки в зависимости от
операционная система, т.е. (") в Windows или (') в системах, отличных от Windows, чтобы
утилиты для чтения идентификаторов, заключенных в кавычки, как одного аргумента. Например, чтобы скопировать
база данных с именем странное имя_db другое: weird`db.name, пара базы данных должна быть
указывается с использованием следующего синтаксиса (не в Windows):
'`странное``db.name`:` другое: странное``db.name`'.
ПРИМЕРЫ
В следующем примере показано, как использовать утилиту для копирования базы данных с именем
util_test в новую базу данных с именем util_test_copy на том же сервере:
$mysqldbcopy\
--source = root: pass @ localhost: 3310: /test123/mysql.sock \
--destination = root: pass @ localhost: 3310: /test123/mysql.sock \
util_test: util_test_copy
# Источник на localhost: ... подключен.
# Назначение на локальном хосте: ... подключено.
# Копирование базы данных util_test переименованной в util_test_copy
# Копирование ТАБЛИЦЫ util_test.t1
# Копирование данных таблицы.
# Копирование ТАБЛИЦЫ util_test.t2
# Копирование данных таблицы.
# Копирование ТАБЛИЦЫ util_test.t3
# Копирование данных таблицы.
# Копирование ТАБЛИЦЫ util_test.t4
# Копирование данных таблицы.
# Копирование VIEW util_test.v1
# Копирование TRIGGER util_test.trg
# Копирование PROCEDURE util_test.p1
# Копирование FUNCTION util_test.f1
# Копирование EVENT util_test.e1
# Копирование ГРАНТОВ из util_test
#...сделано.
Если копируемая база данных не содержит только таблицы InnoDB, и вы хотите убедиться, что
целостность скопированных данных путем блокировки таблиц на этапе чтения, добавьте
--locking = заблокировать все параметр к команде:
$mysqldbcopy\
--source = root: pass @ localhost: 3310: /test123/mysql.sock \
--destination = root: pass @ localhost: 3310: /test123/mysql.sock \
util_test: util_test_copy --locking = блокировка всех
# Источник на localhost: ... подключен.
# Назначение на локальном хосте: ... подключено.
# Копирование базы данных util_test переименованной в util_test_copy
# Копирование ТАБЛИЦЫ util_test.t1
# Копирование данных таблицы.
# Копирование ТАБЛИЦЫ util_test.t2
# Копирование данных таблицы.
# Копирование ТАБЛИЦЫ util_test.t3
# Копирование данных таблицы.
# Копирование ТАБЛИЦЫ util_test.t4
# Копирование данных таблицы.
# Копирование VIEW util_test.v1
# Копирование TRIGGER util_test.trg
# Копирование PROCEDURE util_test.p1
# Копирование FUNCTION util_test.f1
# Копирование EVENT util_test.e1
# Копирование ГРАНТОВ из util_test
#...сделано.
Чтобы скопировать одну или несколько баз данных с главного устройства на подчиненное устройство, вы можете использовать следующую команду
для копирования баз данных. Используйте ведущее устройство в качестве источника и ведомое устройство в качестве пункта назначения:
$ mysqldbcopy --source = корень @ localhost: 3310 \
--destination = root @ localhost: 3311 test123 --rpl = master \
--rpl-user = rpl
# Источник на localhost: ... подключен.
# Назначение на локальном хосте: ... подключено.
# Источник на localhost: ... подключен.
# Остановка раба
# Копирование базы данных test123
# Копирование ТАБЛИЦЫ test123.t1
# Копирование данных для ТАБЛИЦЫ test123.t1
# Подключение к текущему серверу как мастер
# Запуск ведомого
#...сделано.
Чтобы скопировать базу данных с одного ведомого устройства на другое, подключенное к тому же ведущему устройству, вы можете использовать
следующая команда с использованием ведомого устройства с копируемой базой данных в качестве источника и
ведомый, куда нужно скопировать базу данных в качестве места назначения:
$ mysqldbcopy --source = корень @ localhost: 3311 \
--destination = root @ localhost: 3312 test123 --rpl = подчиненный \
--rpl-user = rpl
# Источник на localhost: ... подключен.
# Назначение на локальном хосте: ... подключено.
# Источник на localhost: ... подключен.
# Остановка раба
# Копирование базы данных test123
# Копирование ТАБЛИЦЫ test123.t1
# Копирование данных для ТАБЛИЦЫ test123.t1
# Подключение к текущему мастеру сервера
# Запуск ведомого
#...сделано.
АВТОРСКИЕ ПРАВА
Используйте mysqldbcopy онлайн с помощью сервисов onworks.net