Перенос базы данных Mysql на другой диск

Обновлено: 21.11.2024

Использование диска, отличного от C:, для хранения базы данных MySQL является обычным делом по двум причинам. Во-первых, база данных может превышать доступное место на диске C:, поэтому вам может понадобиться место на диске большего размера. Во-вторых, рекомендуется использовать диск, отличный от C:, в случае сбоя диска C:. Если база данных хранится на диске C:, тогда PrinterLogic будет работать некорректно. Выполните следующие действия, чтобы переместить базу данных MySQL в другое место.

Переместить базу данных MySQL 8.0

  1. Остановите службу MySQL 8.0.
  2. Отредактируйте файл my.ini в папке c:\Program Data\MySQL\MySQL Server 8.0.
  3. Измените datadir=C:/Program Data/Mysql/Mysql Server 8.0\Data на Datadir=D:/Mysql Database\Data .

Отредактированный текст содержит символы / и \, поэтому соблюдайте форматирование правильно.

Сохраните файл и закройте его.

Если для редактирования файла используется Блокнот, к кодировке будет добавлена ​​спецификация (метка порядка байтов), из-за чего MySQL не сможет правильно прочитать файл. Чтобы исправить это, убедитесь, что вы сохранили файл в формате ANSI. При использовании Notepad++ сохранение файла в стандартной UTF-8 (без BOM) будет работать корректно.

Переместить базу данных MySQL 5.5

  1. На сервере, на котором запущен PrinterLogic, откройте консоль служб (Пуск > Администрирование > Службы).
  2. Щелкните правой кнопкой мыши MySQL55 и выберите Остановить .

Например, если вы хотите использовать диск D: в качестве нового местоположения, вы можете ввести что-то вроде:

В этом пути правильно используется косая черта (/). Убедитесь, что вы не используете обратную косую черту (\). Кроме того, если вы скопировали кавычки из этого документа, вам, скорее всего, придется удалить их и ввести заново.

Сохраните файл .ini.

Если для редактирования файла используется Блокнот, к кодировке будет добавлена ​​спецификация (метка порядка байтов), из-за чего MySQL не сможет правильно прочитать файл. Чтобы исправить это, убедитесь, что вы сохранили файл в формате ANSI. При использовании Notepad++ сохранение файла в стандартной UTF-8 (без BOM) будет работать корректно.

В примере на шаге 5 новое расположение указано в datadir="D:/PrinterInstallerDatabase/Data/" . Поскольку этот путь является URL-адресом расположения, на диске D: вы должны создать папку C:/PrinterInstallerDatabase.

Не создавайте подпапку Data вручную.

Используя приведенный выше пример на шаге 7 выше, вы должны скопировать подпапку данных в D:\PrinterInstallerDatabase .

Я использую MySQL 5.5 на локальном компьютере для анализа большого количества государственных данных. Я создал локальную базу данных, которая находится на моем диске по умолчанию (диск Win7 C:). Я хочу хранить данные на моем диске E:, большом внешнем диске eSATA.

Какие шаги мне следует предпринять?

Несмотря на то, что прошло почти 10 лет, я все еще нахожу, что размещенные ответы не соответствуют статье «а» в вопросе, что заставляет меня чувствовать необходимость иметь возможность перемещать выборочную базу данных, а не весь каталог данных! Поэтому я решил прокомментировать с правильным подходом, чтобы удовлетворить вопрос, так как я не могу дать обычный ответ. Это может быть достигнуто с помощью SymLink не более чем за 10 секунд, а подробности можно найти по адресу «blog.binary.men/index.php/2021/05/21/…», надеясь, что кто-то еще узнает, если в этом возникнет необходимость.

4 ответа 4

  1. Выключите mysql.
  2. Переместите все файлы в текущем каталоге данных в новое место (проверьте расположение на шаге 3 — параметр datadir).
  3. Найдите файл my.ini (он находится в каталоге установки mysql). Измените значение параметра datadir, чтобы оно указывало на новое местоположение.
  4. Запустите mysql.

Я обнаружил, что должен использовать / , а не \ в качестве разделителей каталогов в пути к каталогу для datadir . Я использую WAMPserver в Windows 10.

Каталог ProgramData может быть скрыт в проводнике. Я думал, что его не существует, пока не изменил настройку, чтобы показать скрытые файлы.

В более поздних версиях файл my.ini находится в папке C:/ProgramData/MySQL. Также НЕ редактируйте его с помощью блокнота Windows. Используйте Notepad++ или аналогичный, так как Notepad изменяет кодировку файла, и служба MySQL не сможет анализировать файл при запуске.

Несмотря на то, что вы просите Windows, вот несколько хороших указаний для тех, кто оказался здесь в поисках инструкций для Linux/ubuntu:

  • У вас есть данные mysql на внешнем/usb/альтернативном диске /mountpoint/var/lib/mysql , возможно, с умершего компьютера или со старой установки
  • Вы хотите переместить его в вашу новую установку Ubuntu локально /var/lib/mysql
  • Остановите MySQL командой:
    sudo /etc/init.d/mysql stop .
  • Создайте резервную копию текущего (чистого) каталога данных MySQL с помощью:
    sudo cp -Rp /var/lib/mysql /var/lib/mysql.backup .
  • Затем скопируйте старый каталог данных со старого диска с помощью:
    sudo cp -Rp /mountpoint/var/lib/mysql /var/lib/mysql
    где mountpoint — это путь к монтированию.
  • Теперь перезапустите MySQL с помощью:
    sudo /etc/init.d/mysql start

Я приветствую более подробную информацию о том, почему вы считаете, что это не работает. Какой файл конфигурации вы имеете в виду? Это отлично сработало для меня и, очевидно, для других.

  1. Сначала создайте резервную копию данных с помощью `mysqldump.
  2. Если вы устанавливаете Mysql Server из официального пакета, вы можете сделать это, запустив программу MySQLINstanceConfig.exe из каталога bin вашего сервера.
  3. Импорт данных

  1. Остановить сервер Mysql.
  2. Скопируйте данные из каталога данных в новый каталог
  3. Откройте файл my.cnf (в моем случае "C:\ProgramData\MySQL\MySQL Server 5.5\my.ini")
  4. найдите строку вида datadir="C:\ProgramData\MySQL\MySQL Server 5.5\data\" и измените путь к новому местоположению
  5. Запустите свой сервер

Для Windows, начиная с установщика MySQL 1.4.6 (2015-04-07), расположение данных может быть указано в разделе реестра, который указывает расположение файла my.ini, поэтому, если данные были изначально установлены в месте, отличном от используемого по умолчанию, файл my.ini не будет находиться в C:\ProgramData\MySQL\MySQL Server xx\ .

Расположение значений реестра (по крайней мере, начиная с MySQL 5.6):

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MySQL AB\MySQL Server x.x\

Расположение — это REG_SZ, указывающий на папку, в которой расположены файлы приложения MySQL; по умолчанию: C:\Program Files\MySQL\MySQL Server x.x\

DataLocation — это REG_SZ, указывающий на папку, в которой находится my.ini; по умолчанию также: C:\Program Files\MySQL\MySQL Server x.x\

Кроме того, путь к файлу my.ini включен в команду службы в этом разделе реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQLXX в значении ImagePath REG_EXPAND_SZ.

Значение этой строки по умолчанию: "C:/Program Files/MySQL/MySQL Server 5.6/bin\mysqld" --defaults-file="C:\Program Files\MySQL\MySQL Server xx\my.ini " MySQLXX

Итак, суть в том, что для перемещения файлов данных в этом сценарии необходимо выполнить шаги, опубликованные @ITCuties, с некоторыми дополнениями.

Я использую MySQL 5.5 и MySQLWorkbench в Windows7. Я успешно создал базу данных на диске C:, но хочу переместить ее на диск E:. Я остановил демон mysqld и отредактировал файл my.ini, заменив datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" на datadir="E:/MySQL/data/". Я скопировал данные из папки C: в папку E:. Я могу запустить процесс mysqld, но созданная мной база данных не появляется. Кто-нибудь может объяснить, что я делаю неправильно?

4 ответа 4

В основном вы хотели бы скопировать все содержимое из старого каталога в новый каталог. Убедитесь, что при этом вы также не копируете бинарные журналы (если они есть, они выглядят как mysql-bin.001 и т. д., а также не копируете mysql-bin.index, потому что он содержит ссылку на реальный путь к старым бинарным журналам) . После этого вы сможете перезапустить демон mysql и войти в систему, чтобы увидеть базы данных.

PS: не тестировалось, но должно работать.

Когда я пытался переместить свою базу данных, я столкнулся с проблемой, когда у окон не было тех же разрешений на новую папку данных, что и у исходной. Вы можете проверить, есть ли у нужных пользователей доступ к новой папке, перейдя в свойства папки и выбрав вкладку безопасности.

Поскольку я хотел, чтобы моя база данных innodb располагалась в другом разделе, я остановил MySQL из MySQL Workbench. Я скопировал свою базу данных innodb ibdata1, а также 2 файла журнала, которые MySQL автоматически создал в моей папке C:\ProgramData\MySQL\, в новую папку на моем разделе E:. Я добавил в my.ini следующее:

Теперь, когда я запускаю свою базу данных, все изменения вносятся в ibdata1 на диске E:.

Я не переношу его на другой сервер. Я хочу, чтобы фактические данные были получены с диска E:, а не с диска C:. Я хочу, чтобы mySQL располагался на диске C:.

Сейчас мои данные innodb хранятся в скрытой папке на сервере: C:\Program Data\MySQL\MySQL Server 5.5\data\, которые я хочу переместить на диск E:

Можно ли скопировать данные из моего текущего каталога innodb_data_home_dir в новое место, а затем указать новое местоположение в качестве правильного пути к каталогу innodb_data_home_dir?

Попробуйте интеллектуальный инструмент переноса данных Windows 11, чтобы перенести все данные одним щелчком мыши.

EaseUS Todo PCTrans

Бесплатная техническая поддержка

Отзывы и награды

"Как я могу переместить MySQL с одного физического сервера на другой? Например, вот такой точный сценарий: у меня есть сервер MySQL, который использует таблицу InnoDB и занимает около 20 ГБ в электронной форме. Я хочу переместить его на новый сервер, что самый эффективный способ сделать это?"

MySQL – это система управления реляционными базами данных, основанная на языке структурированных запросов. Мы используем его для управления информацией, хранящейся на компьютере, включая личные данные или огромное количество информации в компании. Благодаря этой бесплатной системе управления базами данных компаниям легко управлять своим бизнесом. Итак, как перенести базу данных между двумя серверами для сохранения этих данных?

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

(Самый простой) Как перенести базу данных MySQL с одного сервера на другой

Нет необходимости изучать командную строку других упомянутых статей; несколько щелчков мыши могут переместить базы данных MySQL. Именно поэтому EaseUS Todo PCTrans выделяется среди них. Все, что вам нужно, это загрузить этот инструмент миграции базы данных и выполнить 3 простых шага. Доверьтесь EaseUS! Мы профессионально переносим базу данных с одного сервера на другой.

Нажмите кнопку загрузки, чтобы открыть пробную версию:

EaseUS Todo PCTrans Technician

Ваше интеллектуальное программное обеспечение для передачи файлов Windows Server.

Неограниченная передача файлов между серверами. Перенос программ, приложений без переустановки. Перенести учетную запись, настройки на новый серверный компьютер. Спасение данных, поиск ключа продукта для установленных программ.

Бесплатная техническая поддержка

EaseUS Todo PCTrans по умолчанию поддерживает миграцию MySQL, установленной на системном диске. Кроме того, это помогает перенести выборочную установку MySQL.

Шаг 1. Запустите EaseUS Todo PCTrans на обоих ПК

На исходном ПК выберите «ПК-ПК» на главном экране EaseUS Todo PCTrans и продолжайте.

Шаг 2. Выберите направление переноса — Старый или Новый компьютер

"Новый" — перенос всех данных с удаленного старого компьютера на текущий новый компьютер.

"Старый" — перенос всех данных с текущего старого устройства на новый компьютер.

Шаг 3. Подключите два компьютера

<р>1. Выберите целевой компьютер для подключения по его IP-адресу или имени устройства и нажмите «Подключиться».

<р>2. Введите пароль для входа на целевой компьютер и нажмите «ОК» для подтверждения.

Если вы не видите целевой компьютер в списке устройств, вы также можете нажать «Добавить компьютер», чтобы вручную подключить целевой компьютер, введя его IP-адрес или имя устройства.

Шаг 4. Выберите приложения, программы и программное обеспечение и перенесите их на целевой компьютер

<р>1. Вы можете выбирать и выбирать, что вы хотите перенести с текущего компьютера на целевой ПК.

<р>2. Выбрав нужные приложения и программы, нажмите «Перенести», чтобы начать процесс переноса.

Бесплатная техническая поддержка

Если вы хотите выполнить удаленную передачу, вы можете попробовать режим «Резервное копирование и восстановление» EaseUS Todo PCTrans. В следующей части мы познакомим вас с программой резервного копирования базы данных для ее резервного копирования в виде одного файла с помощью mysqldump.

Как перенести базу данных на целевой сервер

Для переноса базы данных между двумя серверами требуется Mysqldump, утилита командной строки для создания резервной копии базы данных MySQL, чтобы клонировать базу данных MySQL.

Во-первых, необходимо экспортировать базы данных в файл дампа.Затем перенесите его на целевой сервер. В конце импортируйте базы данных MySQL на новый сервер.

Шаг 1. Экспорт базы данных MySQL в файл дампа

Войдите на свой старый сервер и введите команду systemctl, чтобы остановить службу MySQL:

systemctl остановить mysql

Экспортируйте базу данных в виде файла дампа с помощью команды mysqldump:

Дамп всех баз данных MySQL: mysqldump -u [пользователь] -p --all-databases > all_databases.sql

Дамп одной базы данных: mysqldump -u root -p --opt [имя базы данных] > имя_базы_данных.sql

Шаг 2. Перенесите базы данных MySQL на новый сервер с помощью команды SCP

SCP — это программа для передачи файлов, установленная в Linux. Если вы хотите использовать его, вы можете поместить командную строку SCP в командную строку. Если это не работает, вы можете сначала загрузить SCP. Или вернитесь к использованию EaseUS Todo PCTrans.

Все базы данных: scp all_databases.sql [email protected]:~/

Единая база данных: scp имя_базы_данных.sql [email protected]:~/

После этого вы сможете увидеть базу данных на новом сервере.

Шаг 3. Импорт базы данных в MySQL

Выполните следующую командную строку, чтобы импортировать файл дампа базы данных MySQL на новый сервер.

Все базы данных: mysql -u [пользователь] -p --all-databases

Одна база данных: mysql -u [пользователь] -p новая база данных

Дополнительные параметры:

Если вы хотите переместить какие-либо определенные таблицы базы данных MySQL, введите следующую команду:

mysqldump -u [имя пользователя] -p [база данных] [таблица1] [таблица2] > dump.sql

Об авторе

Роксанна является одним из основных участников EaseUS. Она создала множество постов на цифровых устройствах, таких как ПК, мобильные телефоны, планшеты, Mac и т. д. Она любит делиться идеями с людьми, интересующимися тем же.

Отзывы и награды

Отзывы о товарах

EaseUS Todo PCTrans Free – это полезное и надежное программное решение, созданное для операций по миграции компьютеров, будь то с одной машины на другую или с более ранней версии вашей ОС на более новую.

EaseUS Todo PCTrans разработан людьми из EaseUS, которые создают невероятные инструменты, позволяющие управлять резервными копиями и восстанавливать поврежденные жесткие диски. Хотя это не официальный инструмент, EaseUS славится своим программным обеспечением и кодом.

Он предлагает возможность перенести всю вашу учетную запись пользователя со старого компьютера, то есть все будет быстро перенесено. Вы по-прежнему можете сохранить свою установку Windows (и соответствующие драйверы для вашего нового ПК), но вы также получите все свои приложения, настройки, предпочтения, изображения, документы и другие важные данные.

Читайте также: