Змінення існуючого шляху datadir


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відображається як datadir, ВІДКЛЮЧЕННЯ, ВИ ЗДОРОВИЛИ ПРАВО !!!

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

Спробувати !!!


Чи можу я знати, що описані вище кроки будуть працювати для Windows Server 2008?

Працює, але, швидше за все, ви отримаєте помилку 1067. Перевірте дозволи на новий каталог

2
Іноді послугу реєструють як MySQL57, потрібно спочатку перевірити.
giannis christofakis

2
Я зробив помилку noob і не скопіював дозволи. mysql не перезапуститься. Я намагався надати мережевому сервісу повний доступ до datadir (як за іншими пропозиціями в Інтернеті), і він кинув помилки дозволу. Якщо це трапляється з вами, надайте "Всім" повний контроль над підкаталогами даних та передайте їх у спадщину дітям. Потім перейдіть до батьківської папки (datadir), увімкніть успадкування за допомогою дозволів "Advanced" та застосуйте всіх дітей. Потім ви можете додати мережеву службу до свого datadir, надавши їй повний контроль, і це поширюватиметься на дітей.
murraybiscuit

2
Ви повинні використовувати xcopy /O/X/E/H/Kзамість xcopy /Sцієї відповіді.
Етан Аллен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.