Изменить существующий путь к данным


20

Я хочу изменить datadirпуть в my.iniфайле.

Существующий datadirпутьC:/ProgramData/MySQL/MySQL Server 5.1/Data/

Размер моего C:накопителя составляет 30 ГБ, а папка данных MySQL занимает 25 ГБ. Поэтому я хочу , чтобы изменить datadirк F:/naveen/data.

Это возможно?

Моя машина работает под управлением Windows Server 2003 .

Ответы:


26

Исходя из ваших путей, я могу смело предположить следующее:

  • Вы используете MySQL в Windows
  • Вы использовали MySQL MSI для установки

Что вам нужно сделать, это установить файл my.ini

При установке MySQL для Windows с использованием MSI, местоположение my.ini, как ожидается, будет C:/ProgramData/MySQL/MySQL Server 5.1.

Пожалуйста, запустите следующее в окне DOS:

cd C:/ProgramData/MySQL/MySQL Server 5.1
dir *.ini

Вы увидите несколько примеров файлов my.ini. Однако, если в этой папке нет файла с именем my.ini, вы должны его создать. Существует ли кто-то или нет, пожалуйста, запустите это:

cd C:/ProgramData/MySQL/MySQL Server 5.1
notepad my.ini

Если вас попросят создать его, пожалуйста, сделайте это.

Затем создайте следующую запись под заголовком группы [mysqld] в my.ini:

[mysqld]
datadir=F:/naveen/data

Сохранить my.ini

Затем остановите mysql из командной строки DOS следующим образом:

C:\> net stop mysql

Затем сделайте копию всей папки данных в новом месте

C:\> xcopy "C:\ProgramData\MySQL\MySQL Server 5.1\data" F:\naveen\data /s

Последний шаг, запустить MySQL

C:\> net start mysql

Попробуйте войти в MySQL. Как только вы сможете успешно войти в MySQL, выполните следующую команду:

show variables like 'datadir';

Если вы F:\naveen\dataобнаружите, как датар, ПОЗДРАВЛЯЕМ, ВЫ СДЕЛАЛИ ЭТО ПРАВО !!!

После того, как все ваши приложения работают с MySQL, вы можете удалить все C:\ProgramData\MySQL\MySQL Server 5.1\data\*

Попробуйте!


Могу ли я знать, что вышеуказанные шаги будут работать для Windows Server 2008?

Работает, но, скорее всего, вы получите ошибку 1067. Проверьте разрешения для нового каталога

2
Иногда услуга регистрируется как MySQL57, вы должны сначала проверить.
Яннис Кристофакис

2
Я сделал ошибку нуба и не скопировал разрешения. mysql не перезапустится. Я пытался дать NETWORK SERVICE полный доступ к datadir (как и в других онлайн-предложениях), и он выдал ошибки разрешения. Если это произойдет с вами, предоставьте «Все» полный контроль над подкаталогами данных и наследуйте их от детей. Затем перейдите в родительскую (datadir) папку, включите наследование с помощью разрешений «Дополнительно» и примените ко всем дочерним элементам. Затем вы можете добавить NETWORK SERVICE в свой каталог данных, предоставив ему полный контроль, и это будет распространяться среди детей.
Murraybiscuit

2
Вы должны использовать xcopy /O/X/E/H/Kвместо xcopy /Sэтого ответа.
Итан Аллен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.