forum.bitel.ru http://forum.bitel.ru/ |
|
Перенос базы на другую машину http://forum.bitel.ru/viewtopic.php?f=22&t=1771 |
Страница 1 из 1 |
Автор: | eolegnn [ 04 янв 2009, 16:33 ] |
Заголовок сообщения: | Перенос базы на другую машину |
Перенес базу на другую машину биллинг 44 и получаю ошибку "модуль с кодом mid=3 не найден" хотя он установлен и в Редакторе модулей присутствует с номером 3 вообще на все модули подобная ошибка хотя модули установлены и номера мид совпадают. что неправильно где смотреть? |
Автор: | Akhmat [ 04 янв 2009, 20:22 ] |
Заголовок сообщения: | |
А бгбиллингсервер переносил? как переносил? если просто скопировать папку работающую, должно работать всё. |
Автор: | snark [ 05 янв 2009, 01:23 ] |
Заголовок сообщения: | Re: Перенос базы на другую машину |
eolegnn писал(а): Перенес базу на другую машину
биллинг 44 и получаю ошибку "модуль с кодом mid=3 не найден" хотя он установлен и в Редакторе модулей присутствует с номером 3 вообще на все модули подобная ошибка хотя модули установлены и номера мид совпадают. так ... стоп! давайте определимся КАК Вы переносили, ок? надо было сделать так: 1. тормозите биллинг 2. делаете дамп базы 3. заливаете дамп на новую машину 4. копируете ВЕСЬ биллинг, т.е. ВСЕ его директории 5. запускаете 6. обмываете ![]() все должно работать! что именно Вы сделали не так? может у Вас в настройках MySQL небыло Код: max_allowed_packet = 50M
и поэтому дамп нормально не импортировался? |
Автор: | eolegnn [ 05 янв 2009, 18:30 ] |
Заголовок сообщения: | Перенос базы на другую машину |
Наверное у меня руки - крюки. Перенес так: установил чистый биллинг 4.4 на машину установил и прописал модули и перенес конфигурации остановил биллинг и залил базу после этого все без ошибок заработало перед этим просто базу сразу заливал без установка модулей и конфигурации и появлялись разные ошибки. |
Автор: | Akhmat [ 05 янв 2009, 23:44 ] |
Заголовок сообщения: | |
что за модуль три? когда ставил, он без ошибок лёг? да, и когда бекап заливал он без ошибок залился? если у базы опция не стояла, Код: max_allowed_packet = 50M то он бы не перенёс установленные модули.
искайте концы и найдёте) |
Автор: | snark [ 06 янв 2009, 15:37 ] |
Заголовок сообщения: | |
специально, ради эксперимента, перенес БГБ с юниксовой машины на виндовую: - скопировал БГБ - сделал дамп базы - залил дамп - запустил БГБ все заработало! что я не так сделал? |
Автор: | Borodatych [ 06 мар 2009, 11:18 ] |
Заголовок сообщения: | |
Здраствуйте! Есть вопросик по переносу данных. На обоих машинах биллинг 4.5. Ставил по мануалу. Различаются только каталоги установки. Пытаюсь перенести базу тупым копированием. Всё переносится. Но не могу сделать ни каких изменений. Вопросик в следующем. 1. Уместен ли вообще тупой перенос базы, учитывая даже в какие каталоги всё это добро было установлено? 2. Если нет, то как можно экспортировать данные с рабочей машины и соответственно импортировать на другую, с мозможность редактировать? 3. Нужно ли останавливать рабочию тачку или можно экспортировать на ходу? 4. Если нет, то какие демоны тормозит: billing, scheduler, dataloader......?. 5. Парралельный вопросик: Пароль на подключения биллинга к базе храниться в файле dump.sql, на сколько я понял? Если быть точным то последние две строчки отвечают за логин и пароль, верно? |
Автор: | Borodatych [ 06 мар 2009, 12:21 ] |
Заголовок сообщения: | |
Попробую частично ответить сам, но вопрос в силе. Просьба поправить. 1. дампип: mysqldump bgbilling > bgbilling.sql 2. запускаете mysql и говорите ему: DROP DATABASE IF EXISTS bgbilling; CREATE DATABASE bgbilling; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'localhost' IDENTIFIED BY 'bgbilling'; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'%' IDENTIFIED BY 'bgbilling'; 3. заливаете дамп: mysql bgbilling < bgbilling.sql (взято: http://bgbilling.ru/forum/viewtopic.php ... 2dbcdf2dc0) Из поста выше осталиь вопросы: 1, 3, 4, 5 |
Автор: | snark [ 06 мар 2009, 17:35 ] |
Заголовок сообщения: | |
Borodatych писал(а): Пытаюсь перенести базу тупым копированием. Всё переносится. Но не могу сделать ни каких изменений. уж0с! БД - это не только файлы, это индексы и т.д. и т.п., а в *nix это еще и права на эти файлы ... Borodatych писал(а): 1. Уместен ли вообще тупой перенос базы, учитывая даже в какие каталоги всё это добро было установлено? не уместен и даже вреден! для переноса необходимо использовать mysqldump дамп: Код: mysqldump --default-character-set=cp1251 bgbilling > bgbilling.sql восстановление Код: echo -e "DROP DATABASE IF EXISTS bgbilling;\nCREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;\nUSE bgbilling;\n" > bgbilling.sql mysqldump --default-character-set=cp1251 bgbilling >> bgbilling.sql Borodatych писал(а): 3. Нужно ли останавливать рабочию тачку или можно экспортировать на ходу? можно на ходу ... Borodatych писал(а): 4. Если нет, то какие демоны тормозит: billing, scheduler, dataloader......?. если хотите с остановкой демонов - тормозите _все_ что может обращаться в мускуле к таблице bgbilling ... но, как я выше сказал - можно и на ходу ... Borodatych писал(а): 5. Парралельный вопросик: Пароль на подключения биллинга к базе храниться в файле dump.sql, на сколько я понял? Если быть точным то последние две строчки отвечают за логин и пароль, верно? да, в строках: Код: GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'localhost' IDENTIFIED BY 'bgbilling';
GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'%' IDENTIFIED BY 'bgbilling'; но Вы пароль не меняйте, т.к. иначе придется везде где происходит подключение к БД его менять! |
Автор: | Jimson [ 06 мар 2009, 21:54 ] |
Заголовок сообщения: | |
можно переносить просто файлами сколько душе угодно просто права на саму базу хранятся в базе "mysql", захватите ее тоже |
Автор: | snark [ 06 мар 2009, 22:01 ] |
Заголовок сообщения: | |
файлами - не кошерно |
Автор: | Borodatych [ 10 мар 2009, 11:12 ] |
Заголовок сообщения: | |
Jimson писал(а): можно переносить просто файлами сколько душе угодно
просто права на саму базу хранятся в базе "mysql", захватите ее тоже Благодарю за столь быстрый ответ. Но не помогло. Перенёс вместе с базой мускуля. Он даже не запустился. Наверно есть привязка по отношению к каталогу установки. На старой тачке база лежит /var/mysql на новой /var/lib/mysql. Или что я не так делаю? |
Автор: | Borodatych [ 10 мар 2009, 11:23 ] |
Заголовок сообщения: | |
Спасибо за ответ snark Делаю на ходу: Код: mysqldump --default-character-set=cp1251 bgbilling > bgbilling.sql Получаю: Код: mysqldump: Got error: 1016: Can`t open file: `./bgbilling/log_error_8_200608.frm ` (errno: 24) when using LOCK TABLES Значит на ходу не получиться? Не красиво с моей стороны звучит, но может не так: snark писал(а): восстановление Код: echo -e "DROP DATABASE IF EXISTS bgbilling;\nCREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;\nUSE bgbilling;\n" > bgbilling.sql mysqldump --default-character-set=cp1251 bgbilling >> bgbilling.sql а так: Код: echo -e "DROP DATABASE IF EXISTS bgbilling;\nCREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;\nUSE bgbilling;\n" < bgbilling.sql mysqldump --default-character-set=cp1251 bgbilling << bgbilling.sql и извиняюсь за не знание элементарностей. для чего здесь: Код: mysqldump --default-character-set=cp1251 bgbilling << bgbilling.sql двойной знак Код: << или так >>
Одним нельзя обойтись? p.s.: Не поймите не правильно, вдруг опечатка, что часто бывает. |
Автор: | dimOn [ 10 мар 2009, 12:26 ] |
Заголовок сообщения: | |
Цитата: echo -e "DROP DATABASE IF EXISTS bgbilling;\nCREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;\nUSE bgbilling;\n" < bgbilling.sql Это бессмысленный код, echo ничего не читает с stdin. Ничего эта строка не даст стало быть.Цитата: mysqldump --default-character-set=cp1251 bgbilling << bgbilling.sql Это тоже весьма странная команда по той же причине.
|
Автор: | Borodatych [ 10 мар 2009, 12:31 ] |
Заголовок сообщения: | |
dimOn писал(а): Цитата: echo -e "DROP DATABASE IF EXISTS bgbilling;\nCREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;\nUSE bgbilling;\n" < bgbilling.sql Это бессмысленный код, echo ничего не читает с stdin. Ничего эта строка не даст стало быть.Буду признателен если напишите код со смыслом. Вот так пойдет? Код: DROP DATABASE IF EXISTS bgbilling;
CREATE DATABASE bgbilling; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'localhost' IDENTIFIED BY 'bgbilling'; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'%' IDENTIFIED BY 'bgbilling'; mysql bgbilling < bgbilling.sql |
Автор: | dimOn [ 10 мар 2009, 12:35 ] |
Заголовок сообщения: | |
Вообще, Код: echo -e "DROP DATABASE IF EXISTS bgbilling;\nCREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;\nUSE bgbilling;\n" > bgbilling.sql создаёт файл bgbilling.sql с дампом. Двойная >> вместо одинарной > означает "дописать".
mysqldump --default-character-set=cp1251 bgbilling >> bgbilling.sql Цитата: Буду признателен если напишите код со смыслом. Я только про две строки речь вёл. По всей видимости, snark ошибся.
Вот так пойдет? Если Вы о восстановлении из дампа, то похоже на правильный под. |
Автор: | Borodatych [ 10 мар 2009, 13:03 ] |
Заголовок сообщения: | |
dimOn То есть, это создает дамп: Код: mysqldump --default-character-set=cp1251 bgbilling > bgbilling.sql и это: Код: echo -e "DROP DATABASE IF EXISTS bgbilling;\nCREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;\nUSE bgbilling;\n" > bgbilling.sql mysqldump --default-character-set=cp1251 bgbilling >> bgbilling.sql Что тогда лучше(правильнее) использовать? По восстановлению вот этот код: Код: DROP DATABASE IF EXISTS bgbilling; CREATE DATABASE bgbilling; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'localhost' IDENTIFIED BY 'bgbilling'; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'%' IDENTIFIED BY 'bgbilling'; mysql bgbilling < bgbilling.sql может дополнить до такого вида: Код: DROP DATABASE IF EXISTS bgbilling;
CREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'localhost' IDENTIFIED BY 'bgbilling'; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'%' IDENTIFIED BY 'bgbilling'; mysql --default-character-set=cp1251 bgbilling < bgbilling.sql Поправьте плиз, я уже запутался. Что и куда. |
Автор: | snark [ 10 мар 2009, 13:28 ] |
Заголовок сообщения: | |
Borodatych писал(а): Делаю на ходу: Код: mysqldump --default-character-set=cp1251 bgbilling > bgbilling.sql Получаю: Код: mysqldump: Got error: 1016: Can`t open file: `./bgbilling/log_error_8_200608.frm ` (errno: 24) when using LOCK TABLES Значит на ходу не получиться? получится! просто Вам надо тюнить систему, т.к. у Вас выдатся ошибка 24 означающая: Код: # perror 24 OS error code 24: Too many open files т.е. надо разрешить открывать системе бОльше файлов ... строка Код: echo -e "DROP DATABASE IF EXISTS bgbilling;\nCREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;\nUSE bgbilling;\n" > bgbilling.sql есть не что иное как объедененные в одну строку команды: Код: echo "DROP DATABASE IF EXISTS bgbilling;" > bgbilling.sql echo "CREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;" >> bgbilling.sql echo "USE bgbilling;" >> bgbilling.sql т.е. если небыло - создается, а если был - обнуляется файл bgbilling.sql в начало которого записывается: Код: DROP DATABASE IF EXISTS bgbilling; CREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; USE bgbilling; после этого командой: Код: mysqldump --default-character-set=cp1251 bgbilling >> bgbilling.sql в этот файл ДОписывается собственно сам дамп БД ... dimOn писал(а): По всей видимости, snark ошибся.
угу ... я перепутал 2 куска code местами ![]() |
Автор: | Borodatych [ 10 мар 2009, 14:21 ] |
Заголовок сообщения: | |
Извеняюсь за оффтоп. На никсах просто не давно. snark 1. Что значит "тюнить систему" и как это реализовать? 2. Как мне разрешить открывать системе больше файлов? Чтобы голова не лопнула подтвердите или опровергните: Это создает дамп: Код: mysqldump --default-character-set=cp1251 bgbilling > bgbilling.sql и это: Код: echo -e "DROP DATABASE IF EXISTS bgbilling;\nCREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;\nUSE bgbilling;\n" > bgbilling.sql mysqldump --default-character-set=cp1251 bgbilling >> bgbilling.sql Просто второе, так скажем, делекатнее? И повторюсь, хочется увидеть ответ всё таки. По восстановлению вот этот код: Код: DROP DATABASE IF EXISTS bgbilling; CREATE DATABASE bgbilling; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'localhost' IDENTIFIED BY 'bgbilling'; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'%' IDENTIFIED BY 'bgbilling'; mysql bgbilling < bgbilling.sql может дополнить до такого вида: Код: DROP DATABASE IF EXISTS bgbilling;
CREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'localhost' IDENTIFIED BY 'bgbilling'; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'%' IDENTIFIED BY 'bgbilling'; mysql --default-character-set=cp1251 bgbilling < bgbilling.sql Или это лишнее? (масло масленое?) |
Автор: | snark [ 10 мар 2009, 15:41 ] |
Заголовок сообщения: | |
Borodatych писал(а): 1. Что значит "тюнить систему" и как это реализовать? 2. Как мне разрешить открывать системе больше файлов? все зависит от оси ... для фри надо добавить в /etc/sysctl.conf (подробности - в хендбуке) Код: kern.maxfiles=65536 kern.maxfilesperproc=32768 для линуха честно говоря не скажу ... Borodatych писал(а): Это создает дамп: Код: mysqldump --default-character-set=cp1251 bgbilling > bgbilling.sql и это: Код: echo -e "DROP DATABASE IF EXISTS bgbilling;\nCREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;\nUSE bgbilling;\n" > bgbilling.sql mysqldump --default-character-set=cp1251 bgbilling >> bgbilling.sql Просто второе, так скажем, делекатнее? команда: Код: mysqldump --default-character-set=cp1251 bgbilling > bgbilling.sql просто создает текстовый файл дампа, но при попытке его импортировать в рабочую базу, например при восстановлении, Вы получите кучу ошибок, т.к. таблицы которые в дампе есть так же есть и в БД ... это можно исправить изменив команду следующим образом: Код: mysqldump --add-drop-table --default-character-set=cp1251 bgbilling > bgbilling.sql для того чтобы при импорте подобного дампа дропалась сама база необходимо изменить команду так: Код: mysqldump --add-drop-database --default-character-set=cp1251 bgbilling > bgbilling.sql тогда при импорте подобного дампа БД будет удалена и создана на основе дампа ... команда: Код: echo -e "DROP DATABASE IF EXISTS bgbilling;\nCREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;\nUSE bgbilling;\n" > bgbilling.sql mysqldump --default-character-set=cp1251 bgbilling >> bgbilling.sql так же создает файл дампа, но при этом в файле дампа содержаться инструкции по удалению текущей БД и созданию ее с необходимыми языковыми параметрами, т.е. при заливке дампа соданного таким способом Вы получите БД 1-в-1 похожую на ту которую дампили ... Borodatych писал(а): И повторюсь, хочется увидеть ответ всё таки. По восстановлению вот этот код: Код: DROP DATABASE IF EXISTS bgbilling; CREATE DATABASE bgbilling; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'localhost' IDENTIFIED BY 'bgbilling'; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'%' IDENTIFIED BY 'bgbilling'; mysql bgbilling < bgbilling.sql может дополнить до такого вида: Код: DROP DATABASE IF EXISTS bgbilling; CREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'localhost' IDENTIFIED BY 'bgbilling'; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'%' IDENTIFIED BY 'bgbilling'; mysql --default-character-set=cp1251 bgbilling < bgbilling.sql Или это лишнее? (масло масленое?) насчет "это не лишнее" - и да и нет ... да - лишние вот эти строки: Код: GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'localhost' IDENTIFIED BY 'bgbilling'; GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'%' IDENTIFIED BY 'bgbilling'; т.к. если у Вас база уже была создана с помощью dump.sql, то права доступа на нее уже выставлены, зачем делать эту операцию еще раз? если же Вы хотите залить дамп на новую машину, то достаточно выполнить эти 2 комманды вне контекста заливки дампа, т.к., IMHO, "дамп" - это данные, а права можно назначить и отдельно ... нет - т.к. базу необходимо создать с необходимыми языковыми параметрами, а то тут появится топик "почему после импорта дампа у меня отображаются знаки вопроса вместо русских букв?" ![]() чтобы Вас не грузить - пользуйтесь след. схемой: создание дампа БД: Код: mysqldump --default-character-set=cp1251 bgbilling > bgbilling.sql импорт дампа: Код: mysql -B -e "DROP DATABASE IF EXISTS bgbilling;" mysql -B -e "CREATE DATABASE bgbilling DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;" mysql --default-character-set=cp1251 -D bgbilling < bgbilling.sql при необходимости назначения прав - просто выполните: Код: mysql -B -e "GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'localhost' IDENTIFIED BY 'bgbilling';"
mysql -B -e "GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'%' IDENTIFIED BY 'bgbilling';" |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |