8.12.3.3 Использование символических ссылок для баз данных в Windows
В Windows символические ссылки могут использоваться для каталогов баз данных. Это позволяет разместить каталог базы данных в другом месте (например, на другом диске), создав символическую ссылку на него. Использование символических ссылок на базы данных в Windows аналогично их использованию в Unix, хотя процедура создания ссылки отличается.
Предположим, что вы хотите разместить каталог базы данных для базы данных под именем mydb в D:\data\mydb. Для этого создайте символическую ссылку в каталоге данных MySQL, указывающую на D:\data\mydb. Однако перед созданием символической ссылки убедитесь, что каталог D:\data\mydb существует, создав его при необходимости. Если у вас уже есть каталог базы данных под именем mydb в каталоге данных, переместите его в D:\data. В противном случае символическая ссылка не будет эффективной. Для избежания проблем убедитесь, что сервер не работает во время перемещения каталога базы данных.
В Windows вы можете создать символическую ссылку с помощью команды mklink. Эта команда требует прав администратора.
Убедитесь, что необходимый путь к базе данных существует. В этом примере мы используем
D:\data\mydbи базу данных под именемmydb.Если база данных еще не существует, выполните
CREATE DATABASE mydbв клиенте mysql, чтобы создать её.Остановите службу MySQL.
Используя Проводник Windows или командную строку, переместите каталог
mydbиз каталога данных вD:\data, заменив каталог с тем же именем.-
Если вы не работаете в командной строке, откройте её и измените местоположение на каталог данных следующим образом:
C:\>
cd\path\to\datadirЕсли ваша установка MySQL находится в стандартном расположении, вы можете использовать это:
C:\>
cd C:\ProgramData\MySQL\MySQL Server 5.7\Data -
В каталоге данных создайте символическую ссылку с именем
mydb, указывающую на местоположение каталога базы данных:C:\>
mklink /d mydb D:\data\mydb Запустите службу MySQL.
После этого все таблицы, созданные в базе данных mydb, будут созданы в D:\data\mydb.
В качестве альтернативы, в любой версии Windows, поддерживаемой MySQL, вы можете создать символическую ссылку на базу данных MySQL, создав файл .sym в каталоге данных, содержащий путь к целевому каталогу. Файл должен иметь имя , где db_name.symdb_name — имя базы данных.
Поддержка символических ссылок на базы данных в Windows с использованием файлов .sym включена по умолчанию. Если вам не нужны символические ссылки с файлами .sym, вы можете отключить их поддержку, запустив mysqld с опцией --skip-symbolic-links. Чтобы определить, поддерживает ли ваша система символические ссылки с файлами .sym, проверьте значение системной переменной have_symlink с помощью этого оператора:
SHOW VARIABLES LIKE 'have_symlink';
Для создания символической ссылки с файлом .sym используйте эту процедуру:
-
Измените местоположение на каталог данных:
C:\>
cd\path\to\datadir -
В каталоге данных создайте текстовый файл с именем
mydb.sym, содержащий этот путь:D:\data\mydb\ПримечаниеПуть к новой базе данных и таблицам должен быть абсолютным. Если вы указываете относительный путь, расположение относительное к файлу
mydb.sym.
После этого все таблицы, созданные в базе данных mydb, будут созданы в D:\data\mydb.
Поскольку поддержка файлов .sym избыточна с поддержкой родственных символических ссылок, доступной с помощью mklink, использование файлов .sym устарело; ожидается, что поддержка их будет удалена в будущих релизах MySQL.
Следующие ограничения применяются к использованию файлов .sym для символической привязки базы данных в Windows. Эти ограничения не применяются для символических ссылок, созданных с помощью mklink.
Символическая ссылка не используется, если каталог с тем же именем, что и база данных, существует в каталоге данных MySQL.
Опция
--innodb_file_per_tableне может быть использована.Если вы запускаете mysqld как службу, вы не можете использовать сопоставленный диск с удалённым сервером в качестве места назначения символической ссылки. В качестве обходного пути можно использовать полный путь (
\\servername\path\).
© 2025 Oracle
Licensed under the GPLv2 License.