[РЕШЕНО] MySQL и разные пути к базам
Stazz 28 апреля, 2009 - 16:50
Доброго времени суток!
Есть потребность реализовать проэкт. Необходимо создать базу данных (MySQL, PostgreSQL), которая будет очень большая ~ 40 - 60Gb. Можно ли для конкретной БД поменять путь, что бы она жила на другом винте. В M$SQL это возможно, есть ли такая реализация в MySQL или PostgreSQL?
MySQL уже установлен в системе, и уже несколько баз благополучно работают.
Данные будут храниться на съемном HDD, что бы потом можно было перенести на другую машину, (Windows) и подгрузить БД.
Так же на этом HDD будет храниться web-сайт. Ну с Apache я думаю проблем не будет, а вот за БД не знаю.
Как такое можно реализовать.
»
- Для комментирования войдите или зарегистрируйтесь
Откройте для себя файлы
Откройте для себя файлы настроек MySQL
Ну и команду mount
Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.
Конфиг MySQL и команду mount
Конфиг MySQL и команду mount не проблема. Знаем все это. Может я повторюсь, но задача вот в чем:
Как сделать что бы одна из скажем 4-х Mysql-баз размещалась не в /var/lib/mysql, а на /mnt/flash/ - к примеру. Что бы можно было отмонтировать и перенести этот съемный hdd на другую машину, ну и там уже рабоать с этой же базой.
Дык
Как сделать что бы одна из скажем 4-х Mysql-баз размещалась не в /var/lib/mysql, а на /mnt/flash/ - к примеру. Что бы можно было отмонтировать и перенести этот съемный hdd на другую машину, ну и там уже рабоать с этой же базой.
»
----------
/etc/rc.d/rc.mysqld
datadir=/var/lib/mysql - тут пиши любой путь.
ЗЫ файл rc.mysqld уже должен быть если нет значит у тебя другой способ запуска MySQL-а. Ищи свой файл с конфигом запуска и мной описаную строку.
Тут как я понял описание
Тут как я понял описание расположение для ВСЕХ баз, а меня интерисует только одна база. А их у меня там уже 4-е.
Во-первых, можно
Во-первых, можно примонтировать носитель туда, куда кладет базы MySQL. В том числе можно использовать mount --bind. Я бы выбрал этот вариант. Вроде и базы все в одном и том же месте лежат, рядышком, а вроде и там, где нужно.
Во-вторых, gentoo позволяет иметь несколько mysql серверов, с разными конфигами. настраивается через /etc/conf.d/mysql. Запусти второй MySQL с отдельным конфигом. Позволит останавливать MySQL с этой базой данных и вынимать винт, без остановки остальных баз данных. А то как его убирать, чтобы остальное работало?
В третьих, может и можно, но я не знаю как.
Странно, я думал тут бродит
Странно, я думал тут бродит народ, сведущий в Мускуле (я-то больше по Postgres).
В общем, предлагаю покурить доки по мускулю. И посмотреть на структуру его каталогов — вероятно, там можно будет найти что-нибудь по этому поводу (разные базы в разных каталогах, например).
Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.
Для начала так никто и не
Для начала так никто и не понял что я хотел, или не так объяснили, но из всего тут разговора ничего полезного не нашел. Ну все равно спасибо за то откликнулись!
Погуглив немного буржуйские сайты, пораскинув мыслей, я нашел два пути реализации.
1) Первый, тот что я применил. Я скачал с сайта mysql уже скомпиленную базу, весит порядком 115 Мб. Вкинул на съемный носитель. Прописал все права доступа, далее настройка и запуск следующими командами:
cd /home/mysql/
./bin/mysqladmin -u root password '123'
./bin/mysqld_safe --no-defaults --socket=/tmp/mysql.sock --datadir=/home/mysql/data/ --user=$USER --port=3307 &
Запуск тока из каталога mysql, с указанием ./bin/mysqld_safe, обязательно заменить название сокета (я поставил 1 вконце, а так название любое, тока что бы потом нашли), ну и сменить порт. Вконце имя пользователя - переменная котрая берет ID узеря от которого залогинился. От Рута не рекомендую, сложно потом прибить базу будет, да и еще много причин. Я от просто пользователя.
2) Второй я не проверял, но думаю что разницы нет. Может есть, пусть народ сведущий объяснит разницу. Достаточно создать еще один конфиг, разместив его где угодно, лишь были права на чтение. Ну и запустить такой командой:
/usr/sbin/mysqld --defaults-file=/etc/mysql/my-new.cnf --basedir=/home --datadir=/home/mysql --pid-file=/var/run/mysqld/mysqld-new.pid --socket=/tmp/mysqld-new.sock
Доступ к базе пот с такими параметрами:
mysql -u root --host=127.0.0.1 --port=3307
Все работает, все пишет.