![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
День добрый.
На сервере freebsd8 проводился portupgrade.
По каким-то причинам был удален mysql 5.5.4
На mysql лежало несколько важных баз.
Ставлю сервер заново.
Подскажите пожалуйста как правильно подключить к новому Mysql серверу старые базы.
Все базы лежат по старому пути в /var/db/mysql
Есть ли какой то механизм, которым можно было бы все подтянуть в новый сервер в том числе и юзеров баз данных.
Т.е. подключить все малой кровью ...
Интересует принцип процедуры и как это делать правильно.
Заранее спасибо.
Отредактированно kharkov_max (07.05.2010 08:05:39)
Неактивен
Есть ли какой то механизм, которым можно было бы все подтянуть в новый сервер в том числе и юзеров баз данных.
Т.е. подключить все малой кровью ...
1. Если движок MyISAM, то простое копирование.
2. Если движок, что-то типа InnoDB... Тоже возможно копирование, но не факт, что оно будет удачным. Не знаю тогда. Специалисты, когда придут, ответят.
3. Пользователи и права хранятся в БД mysql. Формат MyISAM.
Либо копирование. С заменой (только пароль старого mysql root'а лучше знать) новой БД mysql.
Либо копировать, как БД с другим именем (имя каталога поменять) в новое место.
mkdir /var/db/new_mysql/old_mysql_db && cp -R /var/db/mysql/mysql/* /var/db/new_mysql/old_mysql_db
Затем:
mysqladmin reload
mysql
use old_mysql_db
Ну и т.д.:
insert into mysql.user select from old_mysql_db odb where odb.User = 'user_name' and odb.Host = 'host_name';
...
insert into mysql.user select from old_mysql_db odb where odb.User <> 'root';
Аналогично другие необходимые таблицы: права таблиц, права БД, права столбцов и т.д..
Отредактированно Артём Н. (07.05.2010 23:44:05)
Неактивен
Спасибо.
Уже все заработало.
Решилось так:
После установки Mysql копируем базы в /var/db/mysl/, а потом chown -R mysql:mysql /var/db/mysql
Неактивен
Ну да... chown, если пользователь под которым mysql был удалён.
Просто, если копировать БД mysql, потеряются все пользователи в новой БД, если они были.
А, если в других БД были таблицы InnoDB (и сейчас ещё новые движки, не знаю), то они могут не работать, если отличаются настройки сервера или чего-то там ещё.
Неактивен
Не хочу создавать новую тему, но есть еще пара вопросов.
В my.cnf я как то ставил несколько параметров
bind-address = localhost
bind-address = IP-int_lan
default-character-set = utf8
Т.е. средствами mysql вытыкал его на 2 интерфейса и задавал кодировку.
На сервере 3 интерфейса, один смотрит в мир. Вот на него не хотелось бы вешать сервер.
Можно конечно забанить фаерволом, но это немного кривовато ...
Так вот после переустановки сервера, при запуске матерится на эти параметры.
В данный момент bind-address = 0.0.0.0 т.е. все интерфейсы.
а default-character-set = utf8 вообще выключил.
Версия mysql-serevr - mysql-server-5.5.4 по сути последняя в портах.
Как я понимаю в этой версии данных параметров нет или они как то изменены для конфига...
Не подскажете как теперь выткнуть сервер только на 2 интерфейса и задать кодировку utf8 ?
Отредактированно kharkov_max (08.05.2010 12:59:54)
Неактивен
А зачем Вам localhost? Локальные соединения лучше через unix-socket делать.
Материться MySQL не умеет, а текст ошибки Вы не привели.
Неактивен
paulus написал:
А зачем Вам localhost? Локальные соединения лучше через unix-socket делать.
Суть не в том что localhost можно через цокет делать, а как к примеру средствами Mysql выставить сервер на 2 интерфейса, если скажем всего интерфейсов в сервере 4.
Вот раньше работало, а теперь нет ...
paulus написал:
Материться MySQL не умеет, а текст ошибки Вы не привели.
Извините ...
Ошибку кину чуть позже ...
Неактивен
Честно говоря, не помню, чтобы MySQL поддерживал несколько директив
--bind-address (проверил на 5.1, у меня он цепляется всегда к последней).
В любом случае, 0.0.0.0 + ipfw решают проблему — нет?
Неактивен
Вот раньше работало, а теперь нет ...
Хм... Не знаю актуально ли сейчас, но в FAQ написано, что для FreeBSD кривые порты MySQL...
Неактивен
Ну, это само собой, но очень многие держатся за эту ОС так же, как многие
держатся за Windows — переубеждать бесполезно. Взять хотя бы то, что в ней
приезжает 5.5й MySQL, который ни разу не стабилен. Ну, такая идеология —
что тут поделаешь…
Неактивен
Ну, это само собой, но очень многие держатся за эту ОС так же, как многие
держатся за Windows — переубеждать бесполезно.
Гы-гы:
"- Что такое FreeBSD?
- Ну это тот же windows, только в России.
Вот смотри, BSD - это 'blue screen of death'.
А free - значит бесплатная, как у нас вся windows.
Вот и получается..." %-)
На самом деле, хорошая ОС. Более надёжная, чем Linux. И более простая, со многих сторон (начиная от установки).
Взять хотя бы то, что в ней приезжает 5.5й MySQL, который ни разу не стабилен.
Ну, такая идеология — что тут поделаешь…
Но ведь никто не заставляет использовать MySQL 5.5?
В принципе, FreeBSD далеко не самая плохая ОС.
Отредактированно Артём Н. (08.05.2010 16:12:02)
Неактивен
Артём, я не хочу начинать тут flame war. Я сам FreeBSD админил очень немного,
но люди, которые админят много (i.e. 200+) машин FreeBSD и столько же машин
Linux, говорят, что FreeBSD — гадость по сравнению с.
Что касается MySQL — во FreeBSD, начиная, по-моему, с шестой версии, стали по
умолчанию притаскивать бета-версию MySQL (и какие-то странные параметры
сборки, чтобы она таки собралась) в портах. В результате, начиная с шестой вер-
сии, мы получили нестабильно работающий MySQL во фряхах. Ну и кучу вопросов
«не работает InnoDB» на форуме. Я не против FreeBSD, но я против того, чтобы
делать из UNIX систему, которую нужно допиливать напильником. Благо, это время
уже в остальных системах давно прошло.
Неактивен
Не думал что начнется такое обсуждение ...
Freebsd неплохая система, но есть бока. Точно так же как и в других ОС.
1. Вот что выдает в лог когда ставлю параметр default-character-set = utf8
100512 10:28:33 [Note] Plugin 'FEDERATED' is disabled. InnoDB: The InnoDB memory heap is disabled InnoDB: Mutexes and rw_locks use InnoDB's own implementation InnoDB: Compressed tables use zlib 1.2.3 InnoDB: Error: log file ./ib_logfile0 is of different size 0 134217728 bytes InnoDB: than specified in the .cnf file 0 5242880 bytes! 100512 10:28:33 [ERROR] Plugin 'InnoDB' init function returned error. 100512 10:28:33 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 100512 10:28:33 [ERROR] /usr/local/libexec/mysqld: unknown variable 'default-character-set=utf8' 100512 10:28:33 [ERROR] Aborting
Судя из лога сервер не знает что есть такой параметр.
2. Возможно порт апгрейд, который я делал обновил мне mysql до более новой версии.
Какая стояла я незнаю ...
Но 2 параметра bind-address = localhost и bind-address = IP-int_lan работали.
В моем сервере 2 интерфейса (2 провайдера и локалка) так вот при помощи этих опций я высталял сервер только в локалку и localhost методом самого mysql. Фаерволом конечно можно закрыть, но сегодня вы закрыли а через пол года чисто случайно забыли и открыли.
Т.е. мое мнение такое что сам mysql должен уметь работать по определенным интерфейсам.
PS.
То что эти глюки связаны с разными версиями mysql у меня уже нет сомнений.
В данный момент у меня стоит версия mysql-server-5.5.4 как я понимаю она бетта ... Это верно ?
Уйдут ли глюки если я перейду на 5.1 и нормально ли перетянутся с 5.5.4 на 5.1 базы.
Для того софта который юзает mysql все равно какая версия т.е. может быть 5.1 а может и 5.5.4.
Или может подскажете как решить эти проблямы на 5.5.4 ?
Неактивен
Ха ...
2й вопрос снимается.
bind-address = localhost и bind-address = IP-int_lan прописывал через DNS, прописал реальные IP все взлетело...
Т.е. сейчас сервер 5.5.4 работает на 2х интерфейсах 127.0.0.1 и INT_IP.
Ругалось в логе на это так:
100512 10:58:51 [Note] /usr/local/libexec/mysqld: Shutdown complete 100512 10:58:51 mysqld_safe mysqld from pid file /var/db/mysql/gateway.mkh.local.pid ended 100512 10:58:53 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql 100512 10:58:53 [ERROR] Can't start server: bind-address refers to multiple interfaces! 100512 10:58:53 [ERROR] Aborting
Может эта версия не может преобразовать в данном параметре доменное имя в IP или у меня проблема с ДНС (но все остальное через ДНС работает верно) ...
А вот вопрос 1 пока висит в воздухе.
Неактивен
А вопрос 1 Вы в логе прочитали неверно. Надо смотреть на строчки
InnoDB: Error: log file ./ib_logfile0 is of different size 0 134217728 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
Размер файлов логов должен совпадать — реальный и в файле конфигурации.
Неактивен
По данной статье http://dedic.ru/node/213 вместо параметра default-character-set = utf8 с которым все раньше работало поставил параметр character-set-server=utf8 и мои глюки были решены.
Глюки были такие. Есть сайт на который можно добавлять файлы (Word, Exel, html). Так вот файлы с русскими наименованиями, добавлялись, но вместо русских символов были ????????, со старыми файлами (отображение на сайте) все было нормально.
После включения параметра character-set-server=utf8 все нормализовалось ....
Буду надеятся, что вопрос решен.
Спасибо всем за помощь ...
Неактивен
paulus написал:
А вопрос 1 Вы в логе прочитали неверно. Надо смотреть на строчки
InnoDB: Error: log file ./ib_logfile0 is of different size 0 134217728 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
Размер файлов логов должен совпадать — реальный и в файле конфигурации.
И больше таких ошибок в логе нет !!!
Неактивен
to kharkov_max
Братан! Спасибо тебе огромное за "вместо параметра default-character-set = utf8 с которым все раньше работало поставил параметр character-set-server=utf8". Больше месяца не мог решить проблему с вопросиками. Прекланяюсь) от души.
Неактивен
lemuriec написал:
to kharkov_max
Братан! Спасибо тебе огромное за "вместо параметра default-character-set = utf8 с которым все раньше работало поставил параметр character-set-server=utf8". Больше месяца не мог решить проблему с вопросиками. Прекланяюсь) от души.
Пожалуйста.
Кто ищет - тот всегда найдет ... )))
Отредактированно kharkov_max (27.06.2011 13:36:12)
Неактивен