SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 15.05.2015 17:31:37

Dnis
Участник
Зарегистрирован: 15.05.2015
Сообщений: 1

Mysql 5.5 и сивольные ссылки. Помогите!

Здравствуйте!

Уже третий день мучаюсь, перерыл поисковики и все ни как не могу понять как заставить отдельные таблицы бд работать по символьным ссылкам? В инете куча инструкции, но все они старые и не работают у меня. Все дело в том что у меня две базы данных(Тип - MyISAM), в обоих одинаковые наименования таблиц, но мне надо что бы некоторые таблицы были общими, что реализуемо в случае если, к примеру сделать символьную ссылку на отдельные файлы из БД1 на БД2. Но...Не работает этот прием, через phpmyadmin показывает что таблица БД2 используется, при попытке чтения ошибка. Заменяю ссылку оригиналом то все норм. Выставлял права - никакого результату. Поддержка самих символьных ссылок вродебы включена. Если целиком вынести папку с БД куданить, а на прежнее место вставить ссылку на эту папку то этот прием работает. Но с файлами наотрез не хочет. Пробовал как в Mysql так и в MariaDB, чую что где-то я недопонимаю...прошу помощи(((

P.S. OS Linux Ubuntu 12.04 x32

Отредактированно Dnis (15.05.2015 17:51:51)

Неактивен

 

#2 16.05.2015 14:38:45

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Mysql 5.5 и сивольные ссылки. Помогите!

Правильно ли я понимаю, что Вы хотите сделать так, чтобы dbname1.tablename и dbname2.tablename
ссылались на одни и те же данные? Если да, то симлинка — не очень удачное решение. Дело в том,
что при открытии таблицы в какой-то базе MySQL кэширует данные в памяти, а значит, Вы с большой
долей вероятности испортите данные при записи. В данном случае можно воспользоваться каким-то
из встроенных решений MySQL:

1. Сделать представление. use dbname2; create view tablename as select * from dbname1.tablename.
Оптимизатор MySQL достаточно умный для того, чтобы использовать данные без создания временных
табличек.

2. Сделать таблицу-объединение.
use dbname2;
create table tablename (..правильный список полей..) engine=merge union=(dbname1.tablename) insert_method=last;

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson